http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53299
Bug #: 53299
Summary: libiberty usage of GCC_PICFLAG causes -fPIC to be
passed to non-GNU compiler
Classification: Unclassified
Product: gcc
Version: 4.7.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: other
AssignedTo: [email protected]
ReportedBy: [email protected]
Host: sparc64-sun-solaris2.8
Target: sparc64-sun-solaris2.8
Build: sparc64-sun-solaris2.8
In the course of bootstrapping 4.7.0 on Solaris using the vendor compiler, I
saw this:
[...]
config.status: creating testsuite/Makefile
config.status: creating config.h
config.status: executing default commands
gmake[3]: Entering directory `/tmp/gcc-build/libiberty'
if [ x"-fPIC" != x ] && [ ! -d pic ]; then \
mkdir pic; \
else true; fi
touch stamp-picdir
if [ x"-fPIC" != x ]; then \
cc -xarch=v9 -xildoff -errwarn=%all -c -DHAVE_CONFIG_H -g -I.
-I/home/src/gcc-4.7.0/libiberty/../include -fPIC
/home/src/gcc-4.7.0/libiberty/regex.c -o pic/regex.o; \
else true; fi
cc: Warning: illegal option -fPIC
cc -xarch=v9 -xildoff -errwarn=%all -c -DHAVE_CONFIG_H -g -I.
-I/home/src/gcc-4.7.0/libiberty/../include
/home/src/gcc-4.7.0/libiberty/regex.c -o regex.o
if [ x"-fPIC" != x ]; then \
cc -xarch=v9 -xildoff -errwarn=%all -c -DHAVE_CONFIG_H -g -I.
-I/home/src/gcc-4.7.0/libiberty/../include -fPIC
/home/src/gcc-4.7.0/libiberty/cplus-dem.c -o pic/cplus-dem.o; \
else true; fi
cc: Warning: illegal option -fPIC
[...]
I traced the -fPIC flag to the GCC_PICFLAG macro in the libiberty configure
script. There needs to be a check for whether $CC is GNU or not, because
passing in a bogus flag won't necessarily raise an error (even with -errwarn).