#51196: nss 3.23 does not build on Mac Os X 10.6.8, Snow Leopard, because of "unrecognized command line option "-std=c++0x"" ------------------------------+-------------------------------- Reporter: Peter_Dyballa@… | Owner: macports-tickets@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: 2.3.4 Resolution: | Keywords: Port: nss | ------------------------------+-------------------------------- Comment (by Peter_Dyballa@…): Trying the patch `std=.patch` allows compilation of `gtest-all.c`. But now a new error arrises: {{{ make[2]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_net_nss/nss/work/nss-3.23/nss/external_tests/google_test' cd der_gtest; /usr/bin/make libs make[2]: Entering directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_net_nss/nss/work/nss-3.23/nss/external_tests/der_gtest' if test ! -d Output.OBJD; then rm -rf Output.OBJD; ../../coreconf/nsinstall/Output.OBJD/nsinstall -D Output.OBJD; fi /usr/bin/llvm-g++-4.2 -arch x86_64 -o Output.OBJD/der_getint_unittest.o -c -Os -fPIC -fno-common -pipe -DDARWIN -DHAVE_STRERROR -DHAVE_BSD_FLOCK -Wall -DNSS_NO_GCC48 -DXP_UNIX -UDEBUG -DNDEBUG -DUSE_UTIL_DIRECTLY -DNO_NSPR_10_SUPPORT -DSSL_DISABLE_DEPRECATED_CIPHER_SUITE_NAMES -I../../external_tests/google_test/gtest/include -I../../external_tests/common -I/opt/local/include/nspr -I../../../dist/Output.OBJD/include -I../../../dist/public/nss -I../../../dist/private/nss -I../../../dist/public/nspr -I../../../dist/public/nss -I../../../dist/public/libdbm -I../../../dist/public/gtest der_getint_unittest.cc In file included from der_getint_unittest.cc:14: ../../external_tests/common/scoped_ptrs.h:33: error: expected initializer before ‘<’ token ../../external_tests/common/scoped_ptrs.h:34: error: expected initializer before ‘<’ token ../../external_tests/common/scoped_ptrs.h:35: error: expected initializer before ‘<’ token ../../external_tests/common/scoped_ptrs.h:36: error: expected initializer before ‘<’ token ../../external_tests/common/scoped_ptrs.h:37: error: expected initializer before ‘<’ token ../../external_tests/common/scoped_ptrs.h:38: error: expected initializer before ‘<’ token ../../external_tests/common/scoped_ptrs.h:39: error: expected initializer before ‘<’ token make[2]: *** [Output.OBJD/der_getint_unittest.o] Error 1 }}} So it's this block of C++ statements that the used Apple GCC 4.2 does not understand: {{{ 31 #define SCOPED(x) typedef std::unique_ptr<x, ScopedMaybeDelete<x>
Scoped ## x 32 33 SCOPED(PK11SlotInfo); 34 SCOPED(SECItem); 35 SCOPED(PK11SymKey); 36 SCOPED(SECKEYPublicKey); 37 SCOPED(SECKEYPrivateKey); 38 SCOPED(SECAlgorithmID); 39 SCOPED(CERTSubjectPublicKeyInfo); 40 41 #undef SCOPED }}}
I think this means that at least GCC 4.8 has to be used, taking into account also the warning from `coreconf/Werror.mk`… (but I am no C++ expert) -- Ticket URL: <https://trac.macports.org/ticket/51196#comment:2> MacPorts <https://www.macports.org/> Ports system for OS X