https://gcc.gnu.org/bugzilla/show_bug.cgi?id=124641

--- Comment #12 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Or use set fd [open $file rb] instead of set fd [open $file r], that also works
with both tcl 8 and 9.
Though dunno what it will do with Unix vs. DOS line vs. Mac line endings.
I think
    if {[package vsatisfies [package provide Tcl] 9.0-]} {
        fconfigure $fd -profile replace
    }
would be safest (but admittedly ugly).
I see
framework.exp:    set sum_file [open [file join $outdir $tool.sum] w]
framework.exp:  set xml_file [open [file join $outdir $tool.xml] w]
kermit.exp:     set f [open "/tmp/fff" "w"]
remote.exp:    set fd [open $file r]
remote.exp:             set id [open $cache "r"]
remote.exp:             set fd [open $cache.res "r"]
remote.exp:                     set id [open $cache "w"]
remote.exp:                 set id [open $cache.res "w"]
target.exp:         set fid [open "atfile" "w"]
utils.exp:    set fd [open $file r]
utils.exp:      set file_a [open $file_1 r]
utils.exp:      set file_b [open $file_2 r]
baseboards/mcore-moto-sim.exp:    set handle [open doit w]
in dejagnu and
gcc/testsuite/g++.dg/modules/modules.exp:    set f [open $src "w"]
gcc/testsuite/algol68/compile/modules/compile.exp:  set fd [open $filename w]
gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/ms-sysv.exp:    set f [open $src
"w"]
gcc/testsuite/gcc.target/mips/mips.exp:    set f [open $src "w"]
gcc/testsuite/gcc.misc-tests/dectest.exp:    set fd [open $testcase r]
gcc/testsuite/gcc.misc-tests/dectest.exp:    set outfd [open $filename w]
gcc/testsuite/gcc.misc-tests/options.exp:    set fd [open $filename.c w]
gcc/testsuite/gcc.misc-tests/options.exp:    set a [open $file]
gcc/testsuite/gcc.misc-tests/output.exp:    set fd [open $filename.c w]
gcc/testsuite/gcc.misc-tests/output.exp:    set fd [open $filename.c r]
gcc/testsuite/g++.target/aarch64/sve/aarch64-ssve.exp:    set fd [open
$filename.cc w]
gcc/testsuite/lib/fortran-modules.exp:    set fd [open $file r]
gcc/testsuite/lib/gdc-utils.exp:    set fdin [open $base/$test r]
gcc/testsuite/lib/gdc-utils.exp:    set fdout [open $testdir/$test w]
gcc/testsuite/lib/c-torture.exp:    set fd [open $file r]
gcc/testsuite/lib/gcov.exp:    set fd [open $file r]
gcc/testsuite/lib/gcov.exp:    set fd [open $file r]
gcc/testsuite/lib/gcov.exp:    set fd [open $file r]
gcc/testsuite/lib/gcov.exp:    set fd [open $file r]
gcc/testsuite/lib/gcov.exp:    set fd [open $file r]
gcc/testsuite/lib/gcov.exp:    set fd [open $file r]
gcc/testsuite/lib/multiline.exp:    set fp [open $filename r]
gcc/testsuite/lib/objc-torture.exp:    set fd [open $file r]
gcc/testsuite/lib/gcc-dg.exp:       set outfile [open [lindex ${output-file}
1]]
gcc/testsuite/lib/gcc-dg.exp:    set fd [open $file r]
gcc/testsuite/lib/gcc-dg.exp:    set fd [open $file r]
gcc/testsuite/lib/gcc-dg.exp:    set fd [open [list | gzip -dc $modfilename] r]
gcc/testsuite/lib/gcc-dg.exp:    set fd [open [list | gzip -dc $modfilename] r]
gcc/testsuite/lib/gcc-dg.exp:    set fd [open "| $nm $output_file" r]
gcc/testsuite/lib/valgrind.exp:    if [catch {set f [open $logfile]}] {
gcc/testsuite/lib/scandump.exp:    set fd [open $output_file r]
gcc/testsuite/lib/scandump.exp:    set fd [open $output_file r]
gcc/testsuite/lib/scandump.exp:    set fd [open $output_file r]
gcc/testsuite/lib/scandump.exp:    set fd [open "| $cxxfilt < $output_file" r]
gcc/testsuite/lib/scandump.exp:    set fd [open "| $cxxfilt < $output_file" r]
gcc/testsuite/lib/scanasm.exp:    set fd [open $output_file r]
gcc/testsuite/lib/scanasm.exp:    set fd [open $filename r]
gcc/testsuite/lib/scanasm.exp:    set fd [open $output_file r]
gcc/testsuite/lib/scanasm.exp:    set fd [open $output_file r]
gcc/testsuite/lib/scanasm.exp:    set fd [open $filename r]
gcc/testsuite/lib/scanasm.exp:    set fd [open $input_filename r]
gcc/testsuite/lib/mike-gcc.exp:     set fd [open [file rootname [file tail
$src_code]].s r]
gcc/testsuite/lib/file-format.exp:        set open_file [open objfmtst.c w]
gcc/testsuite/lib/fortran-torture.exp:    set fd [open $file r]
gcc/testsuite/lib/gcc-gdb-test.exp:    set fd [open $cmd_file "w"]
gcc/testsuite/lib/go-torture.exp:    set fd [open $file r]
gcc/testsuite/lib/gm2-torture.exp:    set fd [open $file r]
gcc/testsuite/lib/profopt.exp:    set fd [open $base.$perf_ext r]
gcc/testsuite/lib/options.exp:    set fd [open $srcfname w]
gcc/testsuite/lib/mike-g++.exp:     set fd [open [file rootname [file tail
$src_code]].s r]
gcc/testsuite/lib/target-supports.exp:    set f [open $src "w"]
gcc/testsuite/lib/target-supports.exp:  set chan [open "$output"]
gcc/testsuite/lib/target-supports.exp:  set f [open $src "w"]
gcc/testsuite/lib/target-supports.exp:  set f [open $src "w"]
gcc/testsuite/lib/target-supports.exp:  set f [open $src "w"]
gcc/testsuite/lib/target-supports.exp:  set f [open $src "w"]
gcc/testsuite/lib/target-supports.exp:  set file [open
"$srcdir/gcc.dg/builtins-config.h"]
gcc/testsuite/lib/target-supports.exp:  set f [open $src "w"]
gcc/testsuite/lib/target-supports.exp:  set f [open $src "w"]
gcc/testsuite/lib/target-supports.exp:  set f [open $src "w"]
gcc/testsuite/lib/target-supports.exp:  set f [open $src "w"]
gcc/testsuite/lib/target-supports.exp:  set f [open $src "w"]
gcc/testsuite/lib/target-supports.exp:  set f [open $src "w"]
gcc/testsuite/lib/target-supports.exp:  set f [open $src "w"]
gcc/testsuite/lib/target-supports.exp:  set f [open $src "w"]
gcc/testsuite/lib/algol68-torture.exp:    set fd [open $file r]
gcc/testsuite/lib/print-stack.exp:    set f [open $filename]
gcc/testsuite/jit.dg/jit.exp:    # spawn -noecho -open [open "|./${executable}"
"r"]
gcc/testsuite/jit.dg/jit.exp:    set f [open $asm_filename r]
gcc/testsuite/jit.dg/jit.exp:    set f [open $asm_filename r]
gcc/testsuite/gcc.dg/pch/pch.exp:set f [open $test w]
gcc/testsuite/gcc.dg/pch/pch.exp:set f [open $testh w]
gcc/testsuite/gcc.dg/params/params.exp:set fd [open $srcfname w]
gcc/testsuite/go.test/go-test.exp:    set f1 [open $file1 r]
gcc/testsuite/go.test/go-test.exp:    set f2 [open $file2 r]
gcc/testsuite/go.test/go-test.exp:    set fdin [open $test r]
gcc/testsuite/go.test/go-test.exp:    set fdout [open $filename w]
gcc/testsuite/go.test/go-test.exp:    set fdin [open $test r]
gcc/testsuite/go.test/go-test.exp:    set fdout [open $filename w]
gcc/testsuite/go.test/go-test.exp:      set fd [open $f r]
gcc/testsuite/go.test/go-test.exp:      set fd [open $test r]
gcc/testsuite/libgdiagnostics.dg/libgdiagnostics.exp:    # spawn -noecho -open
[open "|./${executable}" "r"]
libffi/testsuite/lib/libffi.exp:    set f [open $src "w"]
libffi/testsuite/lib/libffi.exp:    set fd [open $file r]
libgomp/testsuite/lib/libgomp.exp:      set lock_fd [open $lock_file a+]
libphobos/testsuite/lib/libphobos.exp:  set fid [open $filename r]
libstdc++-v3/testsuite/libstdc++-dg/conformance.exp:    set f [open
$tests_file]
libstdc++-v3/testsuite/lib/libstdc++.exp:    set fd [open $file r]
libstdc++-v3/testsuite/lib/libstdc++.exp:       set f [open $src "w"]
libstdc++-v3/testsuite/lib/libstdc++.exp:    set f [open $config_src "w"]
libstdc++-v3/testsuite/lib/libstdc++.exp:    set file [open $config_out r]
libstdc++-v3/testsuite/lib/libstdc++.exp:       set f [open $src "w"]
libstdc++-v3/testsuite/lib/libstdc++.exp:       set f [open $src "w"]
libstdc++-v3/testsuite/lib/libstdc++.exp:       set f [open $src "w"]
libstdc++-v3/testsuite/lib/libstdc++.exp:       set f [open $src "w"]
libstdc++-v3/testsuite/lib/libstdc++.exp:    set f [open $src "w"]
libstdc++-v3/testsuite/lib/libstdc++.exp:       set f [open $src "w"]
libstdc++-v3/testsuite/lib/libstdc++.exp:       set f [open $src "w"]
libstdc++-v3/testsuite/lib/libstdc++.exp:       set f [open $src "w"]
libstdc++-v3/testsuite/lib/libstdc++.exp:       set f [open $src "w"]
libstdc++-v3/testsuite/lib/libstdc++.exp:        set f [open $src "w"]
libstdc++-v3/testsuite/lib/gdb-test.exp:    set fd [open $filename]
libstdc++-v3/testsuite/lib/gdb-test.exp:    set fd [open $cmd_file "w"]
on the gcc side.  Perhaps the write cases are fine because tcl decides what to
write and hopefully doesn't write non-UTF-8 stuff (except say for file
copying), but the reads need to be inspected.
This Tcl 9 is nightmare!

Reply via email to