Subject: libtool no-suppress evaluated incorrectly
From: "Michal Ambroz" <[email-masked]>
To: <[email-masked]>
Date: Sat, 03 Apr 2021 17:35:54 +0200 (CEST)
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello,
I believe it is bug that the "-no-suppress" option for is evaluated
depending on the possition in the agruments for the --mode=compile.

This doesn't work:

$ /bin/sh ../libtool --tag=CC --mode=compile -no-suppress gcc -DHAVE_CONFIG_
H -I. -I..   -D _GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_
LARGE_FILES -pipe -D _GNU_SOURCE -I../include -Werror -Wall -g -O2 -flto=
auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -
Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -
specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -
specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64 -mtune=generic -
fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -
Wstrict-prototypes -c -o emu.lo emu.c

Usage: /home/mambroz/rpmbuild/BUILD/libemu-ab48695b7113db692982a1839e3d6eb9e
73e90a9/libtool [OPTION]... [MODE-ARG]...

Try 'libtool --help' for more information.

libtool:   error: unrecognised option: '-no-suppress'

Placing the option "-no-suppress" as any option after gcc works:

$ /bin/sh ../libtool --tag=CC --mode=compile gcc -no-suppress -DHAVE_CONFIG_
H -I. -I..   -D _GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_
LARGE_FILES -pipe -D _GNU_SOURCE -I../include -Werror -Wall -g -O2 -flto=
auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -
Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -
specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -
specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64 -mtune=generic -
fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -
Wstrict-prototypes -c -o emu.lo emu.c

OR this works as well

/bin/sh ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I..   -D
 _GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGE_FILES -pipe
-D _GNU_SOURCE -I../include -Werror -Wall -g -O2 -flto=auto -ffat-lto-
objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-
security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/
rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/
redhat/redhat-annobin-cc1  -m64 -mtune=generic -fasynchronous-unwind-tables
-fstack-clash-protection -fcf-protection -Wstrict-prototypes -c -o emu.lo 
emu.c -no-suppress

best regards

Michal Ambroz