Hi, I've just compiled and installed a copy of GCC 4.0.1 on a RedHat machine which also has GCC 2.95 installed (the OS itself is really old, I believe it's RedHat 2.1), and I'm having a problem with the -fvisibility feature. The following is the output from a test build: g++ -fvisibility=hidden -w -fpermissive -fPIC -ggdb -c ExceptionTestLib2.cpp Using built-in specs. Target: i686-pc-linux-gnu Configured with: ../configure --prefix=/usr/local/gcc-4.0.1 Thread model: posix gcc version 4.0.1 /usr/local/gcc-4.0.1/libexec/gcc/i686-pc-linux-gnu/4.0.1/cc1plus -quiet -v -D_GNU_SOURCE ExceptionTestLib2.cpp -quiet -dumpbase ExceptionTestLib2.cpp -mtune=pentiumpro -auxbase ExceptionTestLib2 -ggdb -w -version -fvisibility=hidden -fpermissive -fPIC -o /tmp/cc5XMCCh.s ignoring nonexistent directory "/usr/local/gcc-4.0.1/lib/gcc/i686-pc-linux-gnu/4.0.1/../../../../i686-pc-linux-gnu/include" #include "..." search starts here: #include <...> search starts here: /usr/local/gcc-4.0.1/lib/gcc/i686-pc-linux-gnu/4.0.1/../../../../include/c++/4.0.1 /usr/local/gcc-4.0.1/lib/gcc/i686-pc-linux-gnu/4.0.1/../../../../include/c++/4.0.1/i686-pc-linux-gnu /usr/local/gcc-4.0.1/lib/gcc/i686-pc-linux-gnu/4.0.1/../../../../include/c++/4.0.1/backward /usr/local/include /usr/local/gcc-4.0.1/include /usr/local/gcc-4.0.1/lib/gcc/i686-pc-linux-gnu/4.0.1/include /usr/include End of search list. GNU C++ version 4.0.1 (i686-pc-linux-gnu) compiled by GNU C version 4.0.1. GGC heuristics: --param ggc-min-expand=64 --param ggc-min-heapsize=64098 as --traditional-format -V -Qy -o ExceptionTestLib2.o /tmp/cc5XMCCh.s GNU assembler version 2.16 (i686-pc-linux-gnu) using BFD version 2.16 ... so I know it's using the correct version. But an objdump -x of the resulting object file shows that none of the symbols are marked hidden. I've been going back and forth between this box and another more recent box with 3.4.3 installed, and the same compile command works fine. I also ran 'cc1plus' and 'as' directly (as shown by the g++ -v command on each) box to see what the problem was, and all I saw was that the cc1plus associated with this 4.0.1 installation does not inject the '.hidden' keywords for the symbols in the resulting .s file. I'm not sure if this is an issue with my actual GCC configuration/build, or if there's a separate outside issue with my environment, any help is greatly appreciated... Regards, Brian F.