This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c++/16818] New: Environment not set when using -static and global C++ ctors


The environment variable  extern char *environ is not set
on Solaris (SunOS 5.8 and 5.9) when using g++ -static.
(Works on Linux, though)

I checked this with different gcc version (2.95.1, 3.3.2, 3.3.4
and 3.4.1) on Solaris. 

Seems to me that this is caused by the run time system.

bash-2.05$  g++ -v -save-temps  -Wall -static -o test_getenv  test_getenv.cpp 
Reading specs from /home/jurij/lib/gcc/sparc-sun-solaris2.9/3.4.1/specs
Configured with: ../gcc-3.4.1/configure --prefix=/home/jurij --without-gnu-as
--without-gnu-ld --with-as=/usr/ccs/bin/as --with-ld=/usr/ccs/bin/ld
--disable-nls --enable-languages=c,c++,f77
Thread model: posix
gcc version 3.4.1
 /home/jurij/libexec/gcc/sparc-sun-solaris2.9/3.4.1/cc1plus -E -quiet -v
test_getenv.cpp -mcpu=v7 -Wall -o test_getenv.ii
ignoring nonexistent directory
"/home/jurij/lib/gcc/sparc-sun-solaris2.9/3.4.1/../../../../sparc-sun-solaris2.9/include"
#include "..." search starts here:
#include <...> search starts here:
 /home/jurij/lib/gcc/sparc-sun-solaris2.9/3.4.1/../../../../include/c++/3.4.1
 /home/jurij/lib/gcc/sparc-sun-solaris2.9/3.4.1/../../../../include/c++/3.4.1/sparc-sun-solaris2.9
 /home/jurij/lib/gcc/sparc-sun-solaris2.9/3.4.1/../../../../include/c++/3.4.1/backward
 /usr/local/include
 /home/jurij/include
 /home/jurij/lib/gcc/sparc-sun-solaris2.9/3.4.1/include
 /usr/include
End of search list.
 /home/jurij/libexec/gcc/sparc-sun-solaris2.9/3.4.1/cc1plus -fpreprocessed
test_getenv.ii -quiet -dumpbase test_getenv.cpp -mcpu=v7 -auxbase test_getenv
-Wall -version -o test_getenv.s
GNU C++ version 3.4.1 (sparc-sun-solaris2.9)
        compiled by GNU C version 3.4.1.
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
 /usr/ccs/bin/as -V -Qy -s -xarch=v8 -o test_getenv.o test_getenv.s
/usr/ccs/bin/as: Sun WorkShop 6 update 2 Compiler Common 6.2 Solaris_9_CBE
2001/04/02
 /home/jurij/libexec/gcc/sparc-sun-solaris2.9/3.4.1/collect2 -V -dn -Bstatic -Y
P,/usr/ccs/lib:/usr/lib -Qy -o test_getenv
/home/jurij/lib/gcc/sparc-sun-solaris2.9/3.4.1/crt1.o
/home/jurij/lib/gcc/sparc-sun-solaris2.9/3.4.1/crti.o /usr/ccs/lib/values-Xa.o
/home/jurij/lib/gcc/sparc-sun-solaris2.9/3.4.1/crtbegin.o
-L/home/jurij/lib/gcc/sparc-sun-solaris2.9/3.4.1 -L/usr/ccs/bin -L/usr/ccs/lib
-L/home/jurij/lib/gcc/sparc-sun-solaris2.9/3.4.1/../../.. test_getenv.o -lstdc++
-lm -lgcc -lgcc_eh -lc -lgcc -lgcc_eh -lc
/home/jurij/lib/gcc/sparc-sun-solaris2.9/3.4.1/crtend.o
/home/jurij/lib/gcc/sparc-sun-solaris2.9/3.4.1/crtn.o
ld: Software Generation Utilities - Solaris Link Editors: 5.9-1.378


Executing:
bash-2.05$ ./test_getenv 
value of OSTYPE = (null)
value of OSTYPE = some


OSTYPE should say "some" in both cases.

-- 
           Summary: Environment not set when using -static and global C++
                    ctors
           Product: gcc
           Version: 3.4.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: jurij dot rosenthal at web dot de
                CC: gcc-bugs at gcc dot gnu dot org
 GCC build triplet: sparc-sun-solaris2.9
  GCC host triplet: sparc-sun-solaris2.9
GCC target triplet: sparc-sun-solaris2.9


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16818


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]