[PATCH] PR 28447: implement multiple parameters for .file on XCOFF

CHIGOT, CLEMENT clement.chigot@atos.net
Wed Oct 20 12:01:11 GMT 2021


HI Alan,

Thanks for providing me how to test without the machine.
It would help me a lot !

And sorry about the patch not being based on the mainline.
I forget that I've a WIP which is impacting it... But don't hesitate
to reject my patch sooner, if it happens again. I'll try not to though !

Thanks and sorry,
Clément

________________________________
From: Alan Modra <amodra@gmail.com>
Sent: Wednesday, October 20, 2021 12:09 PM
To: CHIGOT, CLEMENT <clement.chigot@atos.net>
Cc: binutils@sourceware.org <binutils@sourceware.org>; David Edelsohn <dje.gcc@gmail.com>
Subject: Re: [PATCH] PR 28447: implement multiple parameters for .file on XCOFF

Caution! External email. Do not open attachments or click links, unless this email comes from a known sender and you know the content is safe.

On Mon, Oct 18, 2021 at 11:37:25AM +0000, CHIGOT, CLEMENT via Binutils wrote:
> I would be glad if someone can test it on Windows and maybe on other
> COFF formats too. It shouldn't impact but we never know.

There is quite a lot of testing that you can do yourself without
having access to machines running natively.  For example, configuring
binutils with something like the following

~/src/binutils-gdb/configure \
--disable-nls \
--disable-gdb --disable-gdbserver --disable-gdbsupport \
--disable-libbacktrace --disable-libdecnumber \
--disable-readline --disable-sim \
--target=x86_64-w64-mingw32

then "make && make check" with some relevant targets such as
x86_64-w64-mingw32 above will catch errors.  I built with your patch
and ran into segfaults.  On a few I looked at, they were on the
following lines added to coffgen.c

          /* Add strings for C_FILE aux entries. */
          if (c_symbol->native->u.syment.n_sclass == C_FILE

c_symbol->native was NULL.

(BTW, please do post patches against current mainline, not mainline
plus other patches of yours.  I had to edit the diff to get it to
apply.  Also build and test with just the patch you are posting!)

The list of failing targets/tests I found is:

arm-pe  +FAIL: dlltool (version.dll)
arm-pe  +FAIL: dlltool -p (execution)
arm-pe  +FAIL: ld-pe/pr19803
arm-wince-pe  +FAIL: dlltool (version.dll)
arm-wince-pe  +FAIL: dlltool -p (execution)
arm-wince-pe  +FAIL: ld-pe/pr19803
i686-pe  +FAIL: dlltool (version.dll)
i686-pe  +FAIL: dlltool -p (execution)
i686-pe  +FAIL: ld-pe/pr19803
sh-pe  +FAIL: ld-pe/pr19803
tic30-unknown-coff  +FAIL: ld-scripts/align2a
tic30-unknown-coff  +FAIL: ld-scripts/align2b
tic30-unknown-coff  +FAIL: ld-scripts/empty-address-3a
tic30-unknown-coff  +FAIL: ld-scripts/empty-address-3b
tic30-unknown-coff  +FAIL: ld-scripts/empty-address-3c
tic30-unknown-coff  +FAIL: ld-scripts/sane1
tic30-unknown-coff  +FAIL: ld-scripts/assign-loc
tic30-unknown-coff  +FAIL: ld-scripts/provide-10
tic30-unknown-coff  +FAIL: ld-scripts/provide-11
tic30-unknown-coff  +FAIL: ld-scripts/provide-12
tic30-unknown-coff  +FAIL: ld-scripts/provide-9
tic30-unknown-coff  +FAIL: script
tic30-unknown-coff  +FAIL: MRI script
tic30-unknown-coff  +FAIL: MEMORY
tic30-unknown-coff  +FAIL: MEMORY with symbols
tic30-unknown-coff  +FAIL: SEGMENT_START expression not absolute (default)
tic30-unknown-coff  +FAIL: SEGMENT_START expression not absolute (overridden)
tic30-unknown-coff  +FAIL: SIZEOF
tic4x-coff  +FAIL: check sections 1
tic4x-coff  +FAIL: ld-misc/defsym1
tic4x-coff  +FAIL: ld-scripts/align2a
tic4x-coff  +FAIL: ld-scripts/align2b
tic4x-coff  +FAIL: ld-scripts/empty-address-3a
tic4x-coff  +FAIL: ld-scripts/empty-address-3b
tic4x-coff  +FAIL: ld-scripts/empty-address-3c
tic4x-coff  +FAIL: ld-scripts/sane1
tic4x-coff  +FAIL: ld-scripts/assign-loc
tic4x-coff  +FAIL: ld-scripts/provide-10
tic4x-coff  +FAIL: ld-scripts/provide-11
tic4x-coff  +FAIL: ld-scripts/provide-12
tic4x-coff  +FAIL: ld-scripts/provide-9
tic4x-coff  +FAIL: script
tic4x-coff  +FAIL: MRI script
tic4x-coff  +FAIL: MEMORY
tic4x-coff  +FAIL: MEMORY with symbols
tic4x-coff  +FAIL: SEGMENT_START expression not absolute (default)
tic4x-coff  +FAIL: SEGMENT_START expression not absolute (overridden)
tic4x-coff  +FAIL: SIZEOF
tic4x-coff  +FAIL: sysroot-prefix common plain -Lpath, quoted
tic4x-coff  +FAIL: sysroot-prefix common plain -Lpath, unquoted
tic4x-coff  +FAIL: sysroot-prefix common full-path, quoted
tic4x-coff  +FAIL: sysroot-prefix common full-path, unquoted
tic4x-coff  +FAIL: sysroot-prefix common plain =-prefixed with empty, quoted
tic4x-coff  +FAIL: sysroot-prefix common plain =-prefixed with empty, unquoted
tic4x-coff  +FAIL: sysroot-prefix common plain $SYSROOT-prefixed with empty, quoted
tic4x-coff  +FAIL: sysroot-prefix common plain $SYSROOT-prefixed with empty, unquoted
tic4x-coff  +FAIL: sysroot-prefix common plain =-prefixed -Lpath, quoted
tic4x-coff  +FAIL: sysroot-prefix common plain =-prefixed -Lpath, unquoted
tic4x-coff  +FAIL: sysroot-prefix common plain $SYSROOT-prefixed -Lpath, quoted
tic4x-coff  +FAIL: sysroot-prefix common plain $SYSROOT-prefixed -Lpath, unquoted
tic4x-coff  +FAIL: sysroot-prefix common full-path =-prefixed without, quoted
tic4x-coff  +FAIL: sysroot-prefix common full-path =-prefixed without, unquoted
tic4x-coff  +FAIL: sysroot-prefix common full-path $SYSROOT-prefixed without, quoted
tic4x-coff  +FAIL: sysroot-prefix common full-path $SYSROOT-prefixed without, unquoted
tic4x-coff  +FAIL: --entry foo archive
tic4x-coff  +FAIL: --entry foo -u foo archive
tic4x-coff  +FAIL: --entry foo
tic4x-coff  +FAIL: --entry foo -u foo
tic4x-coff  +FAIL: --entry 0x0
tic54x-coff  +FAIL: check sections 1
tic54x-coff  +FAIL: ld-misc/defsym1
tic54x-coff  +FAIL: ld-scripts/align2a
tic54x-coff  +FAIL: ld-scripts/align2b
tic54x-coff  +FAIL: ld-scripts/empty-address-3a
tic54x-coff  +FAIL: ld-scripts/empty-address-3b
tic54x-coff  +FAIL: ld-scripts/empty-address-3c
tic54x-coff  +FAIL: ld-scripts/sane1
tic54x-coff  +FAIL: ld-scripts/assign-loc
tic54x-coff  +FAIL: ld-scripts/provide-10
tic54x-coff  +FAIL: ld-scripts/provide-11
tic54x-coff  +FAIL: ld-scripts/provide-12
tic54x-coff  +FAIL: ld-scripts/provide-9
tic54x-coff  +FAIL: script
tic54x-coff  +FAIL: MRI script
tic54x-coff  +FAIL: MEMORY
tic54x-coff  +FAIL: MEMORY with symbols
tic54x-coff  +FAIL: SIZEOF
tic54x-coff  +FAIL: sysroot-prefix common plain -Lpath, quoted
tic54x-coff  +FAIL: sysroot-prefix common plain -Lpath, unquoted
tic54x-coff  +FAIL: sysroot-prefix common full-path, quoted
tic54x-coff  +FAIL: sysroot-prefix common full-path, unquoted
tic54x-coff  +FAIL: sysroot-prefix common plain =-prefixed with empty, quoted
tic54x-coff  +FAIL: sysroot-prefix common plain =-prefixed with empty, unquoted
tic54x-coff  +FAIL: sysroot-prefix common plain $SYSROOT-prefixed with empty, quoted
tic54x-coff  +FAIL: sysroot-prefix common plain $SYSROOT-prefixed with empty, unquoted
tic54x-coff  +FAIL: sysroot-prefix common plain =-prefixed -Lpath, quoted
tic54x-coff  +FAIL: sysroot-prefix common plain =-prefixed -Lpath, unquoted
tic54x-coff  +FAIL: sysroot-prefix common plain $SYSROOT-prefixed -Lpath, quoted
tic54x-coff  +FAIL: sysroot-prefix common plain $SYSROOT-prefixed -Lpath, unquoted
tic54x-coff  +FAIL: sysroot-prefix common full-path =-prefixed without, quoted
tic54x-coff  +FAIL: sysroot-prefix common full-path =-prefixed without, unquoted
tic54x-coff  +FAIL: sysroot-prefix common full-path $SYSROOT-prefixed without, quoted
tic54x-coff  +FAIL: sysroot-prefix common full-path $SYSROOT-prefixed without, unquoted
tic54x-coff  +FAIL: --entry foo archive
tic54x-coff  +FAIL: --entry foo -u foo archive
tic54x-coff  +FAIL: --entry foo
tic54x-coff  +FAIL: --entry foo -u foo
tic54x-coff  +FAIL: --entry 0x0
x86_64-w64-mingw32  +FAIL: dlltool (version.dll)
x86_64-w64-mingw32  +FAIL: dlltool -p (execution)
x86_64-w64-mingw32  +FAIL: ld-pe/pr19803
x86_64-w64-mingw32  +FAIL: PR ld/20070
z80-coff  +FAIL: ld-scripts/align2a
z80-coff  +FAIL: ld-scripts/align2b
z80-coff  +FAIL: ld-scripts/empty-address-3a
z80-coff  +FAIL: ld-scripts/empty-address-3b
z80-coff  +FAIL: ld-scripts/empty-address-3c
z80-coff  +FAIL: ld-scripts/sane1
z80-coff  +FAIL: ld-scripts/assign-loc
z80-coff  +FAIL: ld-scripts/provide-10
z80-coff  +FAIL: ld-scripts/provide-11
z80-coff  +FAIL: ld-scripts/provide-12
z80-coff  +FAIL: ld-scripts/provide-9
z80-coff  +FAIL: script
z80-coff  +FAIL: MRI script
z80-coff  +FAIL: MEMORY
z80-coff  +FAIL: MEMORY with symbols
z80-coff  +FAIL: SEGMENT_START expression not absolute (default)
z80-coff  +FAIL: SEGMENT_START expression not absolute (overridden)
z80-coff  +FAIL: SIZEOF
z8k-coff  +FAIL: check sections 1
z8k-coff  +FAIL: ld-misc/defsym1
z8k-coff  +FAIL: ld-scripts/align2a
z8k-coff  +FAIL: ld-scripts/align2b
z8k-coff  +FAIL: ld-scripts/empty-address-3a
z8k-coff  +FAIL: ld-scripts/empty-address-3b
z8k-coff  +FAIL: ld-scripts/empty-address-3c
z8k-coff  +FAIL: ld-scripts/sane1
z8k-coff  +FAIL: ld-scripts/assign-loc
z8k-coff  +FAIL: ld-scripts/provide-10
z8k-coff  +FAIL: ld-scripts/provide-11
z8k-coff  +FAIL: ld-scripts/provide-12
z8k-coff  +FAIL: ld-scripts/provide-9
z8k-coff  +FAIL: script
z8k-coff  +FAIL: MRI script
z8k-coff  +FAIL: MEMORY
z8k-coff  +FAIL: MEMORY with symbols
z8k-coff  +FAIL: SEGMENT_START expression not absolute (default)
z8k-coff  +FAIL: SEGMENT_START expression not absolute (overridden)
z8k-coff  +FAIL: SIZEOF
z8k-coff  +FAIL: sysroot-prefix common plain -Lpath, quoted
z8k-coff  +FAIL: sysroot-prefix common plain -Lpath, unquoted
z8k-coff  +FAIL: sysroot-prefix common full-path, quoted
z8k-coff  +FAIL: sysroot-prefix common full-path, unquoted
z8k-coff  +FAIL: sysroot-prefix common plain =-prefixed with empty, quoted
z8k-coff  +FAIL: sysroot-prefix common plain =-prefixed with empty, unquoted
z8k-coff  +FAIL: sysroot-prefix common plain $SYSROOT-prefixed with empty, quoted
z8k-coff  +FAIL: sysroot-prefix common plain $SYSROOT-prefixed with empty, unquoted
z8k-coff  +FAIL: sysroot-prefix common plain =-prefixed -Lpath, quoted
z8k-coff  +FAIL: sysroot-prefix common plain =-prefixed -Lpath, unquoted
z8k-coff  +FAIL: sysroot-prefix common plain $SYSROOT-prefixed -Lpath, quoted
z8k-coff  +FAIL: sysroot-prefix common plain $SYSROOT-prefixed -Lpath, unquoted
z8k-coff  +FAIL: sysroot-prefix common full-path =-prefixed without, quoted
z8k-coff  +FAIL: sysroot-prefix common full-path =-prefixed without, unquoted
z8k-coff  +FAIL: sysroot-prefix common full-path $SYSROOT-prefixed without, quoted
z8k-coff  +FAIL: sysroot-prefix common full-path $SYSROOT-prefixed without, unquoted
z8k-coff  +FAIL: --entry foo archive
z8k-coff  +FAIL: --entry foo -u foo archive
z8k-coff  +FAIL: --entry foo
z8k-coff  +FAIL: --entry foo -u foo
z8k-coff  +FAIL: --entry 0x0


--
Alan Modra
Australia Development Lab, IBM



More information about the Binutils mailing list