http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49967
Summary: The -static-libstdc++ does not work on HP-UX (IA64 B.11.23, probably others) Product: gcc Version: 4.6.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: j...@cyberscience.com Host: HP-UX IA64 Target: HP-UX IA64 The -static-libstdc++ option is silently ignored on HP-IX, IA64 platform. The reason for this seems to be that g++spec.c relies on HAVE_LD_STATIC_DYNAMIC from auto-host.h, and if this is not set silently fails to implement -static-libstdc++. The HP linker does have options to implement HAVE_LD_STATIC_DYNAMIC, but configure has not detected them. Presumably this is because they are not the usual -Bstatic and -Bdynamic, the HP options are -aarchive and -ashared_archive (not -ashared which disables archive libs completely). Changing auto-host.h to use: #define HAVE_LD_STATIC_DYNAMIC 1 #define LD_DYNAMIC_OPTION "-ashared_archive" #define LD_STATIC_OPTION "-aarchive" resolves the issue, but of course is not the right fix since this file is generated. So, this is really a configuration time issue. As an additional fix though, I would really expect g++ to error or warn if -static-libstdc++ can't be implemented, instead of silently ignoring. Also it could provide the archive name to the linker in place of -lstdc++ for systems where HAVE_LD_STATIC_DYNAMIC really doesn't exist - but possibly if this were fixed for HP there might not be any systems with this restriction.