Skip to content

Conversation

julianmesa-gitkraken
Copy link
Contributor

This PR will need also this electron-npg-automator PR

Compile differences in Release mode:

  • Linux

Before:
cc -o Release/obj.target/libgit2/vendor/libgit2/src/allocators/failalloc.o ../vendor/libgit2/src/allocators/failalloc.c '-DNODE_GYP_MODULE_NAME=libgit2' '-DUSING_UV_SHARED=1' '-DUSING_V8_SHARED=1' '-DV8_DEPRECATION_WARNINGS=1' '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-DV8_COMPRESS_POINTERS' '-DV8_31BIT_SMIS_ON_64BIT_ARCH' '-DV8_REVERSE_JSARGS' '-D__STDC_FORMAT_MACROS' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DOPENSSL_NO_ASM' '-DGIT_THREADS' '-DGIT_SSH' '-DGIT_SSH_MEMORY_CREDENTIALS' '-DLIBGIT2_NO_FEATURES_H' '-DGIT_SHA1_COLLISIONDETECT' '-DGIT_USE_NSEC' '-DGIT_HTTPS' '-DSRC_UTIL_H_' '-DGIT_ARCH_64' '-DGIT_NTLM' '-DGIT_GSSAPI' '-DGIT_REGEX_BUILTIN' '-DGIT_OPENSSL' '-DGIT_USE_FUTIMENS' '-DGIT_USE_STAT_MTIM' '-DHTTP_PARSER_STRICT=0' -I/home/julian/.cache/node-gyp/13.6.7/include/node -I/home/julian/.cache/node-gyp/13.6.7/src -I/home/julian/.cache/node-gyp/13.6.7/deps/openssl/config -I/home/julian/.cache/node-gyp/13.6.7/deps/openssl/openssl/include -I/home/julian/.cache/node-gyp/13.6.7/deps/uv/include -I/home/julian/.cache/node-gyp/13.6.7/deps/zlib -I/home/julian/.cache/node-gyp/13.6.7/deps/v8/include -I../vendor/libgit2/include -I../vendor/libgit2/src -I../vendor/libgit2/deps/ntlmclient -I../vendor/libgit2/deps/pcre -I../vendor/libgit2/deps/zlib -I../vendor/http_parser -I../vendor/libssh2/include -fPIC -pthread -Wall -Wextra -Wno-unused-parameter -m64 -Wno-missing-field-initializers -Wno-unused-variable -Wno-deprecated-declarations -O3 -fno-omit-frame-pointer -MMD -MF ./Release/.deps/Release/obj.target/libgit2/vendor/libgit2/src/allocators/failalloc.o.d.raw -c

After:
cc -o Release/obj.target/libgit2/vendor/libgit2/src/allocators/failalloc.o ../vendor/libgit2/src/allocators/failalloc.c '-DNODE_GYP_MODULE_NAME=libgit2' '-DUSING_UV_SHARED=1' '-DUSING_V8_SHARED=1' '-DV8_DEPRECATION_WARNINGS=1' '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-DV8_COMPRESS_POINTERS' '-DV8_31BIT_SMIS_ON_64BIT_ARCH' '-DV8_REVERSE_JSARGS' '-D__STDC_FORMAT_MACROS' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DOPENSSL_NO_ASM' '-DGIT_THREADS' '-DGIT_SSH' '-DGIT_SSH_MEMORY_CREDENTIALS' '-DLIBGIT2_NO_FEATURES_H' '-DGIT_SHA1_COLLISIONDETECT' '-DGIT_USE_NSEC' '-DGIT_HTTPS' '-DSRC_UTIL_H_' '-DGIT_ARCH_64' '-DGIT_NTLM' '-DGIT_GSSAPI' '-DGIT_REGEX_BUILTIN' '-DGIT_OPENSSL' '-DGIT_USE_FUTIMENS' '-DGIT_USE_STAT_MTIM' '-DHTTP_PARSER_STRICT=0' '-DNDEBUG' -I/home/julian/.cache/node-gyp/13.6.7/include/node -I/home/julian/.cache/node-gyp/13.6.7/src -I/home/julian/.cache/node-gyp/13.6.7/deps/openssl/config -I/home/julian/.cache/node-gyp/13.6.7/deps/openssl/openssl/include -I/home/julian/.cache/node-gyp/13.6.7/deps/uv/include -I/home/julian/.cache/node-gyp/13.6.7/deps/zlib -I/home/julian/.cache/node-gyp/13.6.7/deps/v8/include -I../vendor/libgit2/include -I../vendor/libgit2/src -I../vendor/libgit2/deps/ntlmclient -I../vendor/libgit2/deps/pcre -I../vendor/libgit2/deps/zlib -I../vendor/http_parser -I../vendor/libssh2/include -fPIC -pthread -Wall -Wextra -Wno-unused-parameter -m64 -Wno-missing-field-initializers -Wno-unused-variable -Wno-deprecated-declarations -flto -O3 -fno-omit-frame-pointer -MMD -MF ./Release/.deps/Release/obj.target/libgit2/vendor/libgit2/src/allocators/failalloc.o.d.raw -c

Notice new -flto and -DNDEBUG options

  • Windows

Before:
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.30.30705\bin\HostX64\x64\CL.exe /c /I"C:\Users\Julian\AppData\Local\node-gyp\Cache\13.6.7\include\node" /I"C:\Users\Julian\AppData\Local\node-gyp\Cache\13.6.7\src" /I"C:\Users\Julian\AppData\Local\node-gyp\Cache\13.6.7\deps\openssl\config" /I"C:\Users\Julian\AppData\Local\node-gyp\Cache\13.6.7\deps\openssl\openssl\include" /I"C:\Users\Julian\AppData\Local\node-gyp\Cache\13.6.7\deps\uv\include" /I"C:\Users\Julian\AppData\Local\node-gyp\Cache\13.6.7\deps\zlib" /I"C:\Users\Julian\AppData\Local\node-gyp\Cache\13.6.7\deps\v8\include" /Z7 /nologo /W3 /WX- /diagnostics:column /MP1 /Ox /Ob2 /Oi /Ot /Oy /D NODE_GYP_MODULE_NAME=pcre /D USING_UV_SHARED=1 /D USING_V8_SHARED=1 /D V8_DEPRECATION_WARNINGS=1 /D V8_DEPRECATION_WARNINGS /D V8_IMMINENT_DEPRECATION_WARNINGS /D V8_COMPRESS_POINTERS /D V8_31BIT_SMIS_ON_64BIT_ARCH /D V8_REVERSE_JSARGS /D WIN32 /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _HAS_EXCEPTIONS=0 /D OPENSSL_NO_PINSHARED /D OPENSSL_THREADS /D OPENSSL_NO_ASM /D HAVE_SYS_STAT_H /D HAVE_SYS_TYPES_H /D HAVE_WINDOWS_H /D HAVE_STDINT_H /D HAVE_INTTYPES_H /D HAVE_MEMMOVE /D HAVE_STRERROR /D HAVE_STRTOLL /D HAVE__STRTOI64 /D SUPPORT_PCRE8 /D NO_RECURSE /D HAVE_LONG_LONG /D HAVE_UNSIGNED_LONG_LONG /D NEWLINE=10 /D POSIX_MALLOC_THRESHOLD=10 /D LINK_SIZE=2 /D PARENS_NEST_LIMIT=250 /D MATCH_LIMIT=10000000 /D MATCH_LIMIT_RECURSION=10000000 /D PCREGREP_BUFSIZE /D MAX_NAME_SIZE=32 /D MAX_NAME_COUNT=10000 /D "HOST_BINARY=\"node.exe\"" /GF /Gm- /MT /GS /Gy /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /GR- /Fo"Release\obj\pcre\\vendor\libgit2\deps\pcre\pcre_byte_order.obj" /Fd"C:\Proyectos\nodegit\build\Release\pcre.pdb" /external:W3 /Gd /TC /wd4351 /wd4355 /wd4800 /wd4251 /wd4275 /wd4244 /wd4267 /FC /errorReport:queue ..\..\vendor\libgit2\deps\pcre\pcre_byte_order .c

After:
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.30.30705\bin\HostX64\x64\CL.exe /c /I"C:\Users\Julian\AppData\Local\node-gyp\Cache\13.6.7\include\node" /I"C:\Users\Julian\AppData\Local\node-gyp\Cache\13.6.7\src" /I"C:\Users\Julian\AppData\Local\node-gyp\Cache\13.6.7\deps\openssl\config" /I"C:\Users\Julian\AppData\Local\node-gyp\Cache\13.6.7\deps\openssl\openssl\include" /I"C:\Users\Julian\AppData\Local\node-gyp\Cache\13.6.7\deps\uv\include" /I"C:\Users\Julian\AppData\Local\node-gyp\Cache\13.6.7\deps\zlib" /I"C:\Users\Julian\AppData\Local\node-gyp\Cache\13.6.7\deps\v8\include" /Z7 /nologo /W3 /WX- /diagnostics:column /MP1 /Ox /Ob2 /Oi /Ot /Oy /GL /D NODE_GYP_MODULE_NAME=pcre /D USING_UV_SHARED=1 /D USING_V8_SHARED=1 /D V8_DEPRECATION_WARNINGS=1 /D V8_DEPRECATION_WARNINGS /D V8_IMMINENT_DEPRECATION_WARNINGS /D V8_COMPRESS_POINTERS /D V8_31BIT_SMIS_ON_64BIT_ARCH /D V8_REVERSE_JSARGS /D WIN32 /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _HAS_EXCEPTIONS=0 /D OPENSSL_NO_PINSHARED /D OPENSSL_THREADS /D OPENSSL_NO_ASM /D HAVE_SYS_STAT_H /D HAVE_SYS_TYPES_H /D HAVE_WINDOWS_H /D HAVE_STDINT_H /D HAVE_INTTYPES_H /D HAVE_MEMMOVE /D HAVE_STRERROR /D HAVE_STRTOLL /D HAVE__STRTOI64 /D SUPPORT_PCRE8 /D NO_RECURSE /D HAVE_LONG_LONG /D HAVE_UNSIGNED_LONG_LONG /D NEWLINE=10 /D POSIX_MALLOC_THRESHOLD=10 /D LINK_SIZE=2 /D PARENS_NEST_LIMIT=250 /D MATCH_LIMIT=10000000 /D MATCH_LIMIT_RECURSION=10000000 /D PCREGREP_BUFSIZE /D MAX_NAME_SIZE=32 /D MAX_NAME_COUNT=10000 /D "HOST_BINARY=\"node.exe\"" /D NDEBUG /GF /Gm- /MT /GS /Gy /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /GR- /Fo"Release\obj\pcre\\vendor\libgit2\deps\pcre\pcre_byte_order.obj" /Fd"C:\Proyectos\nodegit\build\Release\pcre.pdb" /external:W3 /Gd /TC /wd4351 /wd4355 /wd4800 /wd4251 /wd4275 /wd4244 /wd4267 /FC /errorReport:queue ..\..\vendor\libgit2\deps\pcre\pcre_byte_order .c

Notice new /GL and /D NDEBUG options

  • MacOS

Before:
cc -o Release/obj.target/libgit2/vendor/libgit2/src/allocators/failalloc.o ../vendor/libgit2/src/allocators/failalloc.c '-DNODE_GYP_MODULE_NAME=libgit2' '-DUSING_UV_SHARED=1' '-DUSING_V8_SHARED=1' '-DV8_DEPRECATION_WARNINGS=1' '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_DARWIN_USE_64_BIT_INODE=1' '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DGIT_THREADS' '-DGIT_SSH' '-DGIT_SSH_MEMORY_CREDENTIALS' '-DLIBGIT2_NO_FEATURES_H' '-DGIT_SHA1_COLLISIONDETECT' '-DGIT_USE_NSEC' '-DGIT_HTTPS' '-DSRC_UTIL_H_' '-DGIT_ARCH_64' '-DGIT_SECURE_TRANSPORT' '-DGIT_USE_STAT_MTIMESPEC' '-DGIT_REGEX_REGCOMP_L' '-DGIT_USE_ICONV' '-DGIT_NTLM' '-DGIT_GSSAPI' '-DHTTP_PARSER_STRICT=0' -I/Users/julianmesa/Library/Caches/node-gyp/14.19.0/include/node -I/Users/julianmesa/Library/Caches/node-gyp/14.19.0/src -I/Users/julianmesa/Library/Caches/node-gyp/14.19.0/deps/openssl/config -I/Users/julianmesa/Library/Caches/node-gyp/14.19.0/deps/openssl/openssl/include -I/Users/julianmesa/Library/Caches/node-gyp/14.19.0/deps/uv/include -I/Users/julianmesa/Library/Caches/node-gyp/14.19.0/deps/zlib -I/Users/julianmesa/Library/Caches/node-gyp/14.19.0/deps/v8/include -I../vendor/libgit2/include -I../vendor/libgit2/src -I../vendor/libgit2/deps/ntlmclient -I../vendor/libgit2/deps/zlib -I../vendor/http_parser -I../vendor/libssh2/include -O3 -gdwarf-2 -mmacosx-version-min=10.13 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -Wno-missing-field-initializers -Wno-unused-variable -Wno-deprecated-declarations -Wno-uninitialized -fno-strict-aliasing -MMD -MF ./Release/.deps/Release/obj.target/libgit2/vendor/libgit2/src/allocators/failalloc.o.d.raw -c

After:
cc -o Release/obj.target/libgit2/vendor/libgit2/src/allocators/failalloc.o ../vendor/libgit2/src/allocators/failalloc.c '-DNODE_GYP_MODULE_NAME=libgit2' '-DUSING_UV_SHARED=1' '-DUSING_V8_SHARED=1' '-DV8_DEPRECATION_WARNINGS=1' '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_DARWIN_USE_64_BIT_INODE=1' '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DGIT_THREADS' '-DGIT_SSH' '-DGIT_SSH_MEMORY_CREDENTIALS' '-DLIBGIT2_NO_FEATURES_H' '-DGIT_SHA1_COLLISIONDETECT' '-DGIT_USE_NSEC' '-DGIT_HTTPS' '-DSRC_UTIL_H_' '-DGIT_ARCH_64' '-DGIT_SECURE_TRANSPORT' '-DGIT_USE_STAT_MTIMESPEC' '-DGIT_REGEX_REGCOMP_L' '-DGIT_USE_ICONV' '-DGIT_NTLM' '-DGIT_GSSAPI' '-DHTTP_PARSER_STRICT=0' '-DNDEBUG' -I/Users/julianmesa/Library/Caches/node-gyp/14.19.0/include/node -I/Users/julianmesa/Library/Caches/node-gyp/14.19.0/src -I/Users/julianmesa/Library/Caches/node-gyp/14.19.0/deps/openssl/config -I/Users/julianmesa/Library/Caches/node-gyp/14.19.0/deps/openssl/openssl/include -I/Users/julianmesa/Library/Caches/node-gyp/14.19.0/deps/uv/include -I/Users/julianmesa/Library/Caches/node-gyp/14.19.0/deps/zlib -I/Users/julianmesa/Library/Caches/node-gyp/14.19.0/deps/v8/include -I../vendor/libgit2/include -I../vendor/libgit2/src -I../vendor/libgit2/deps/ntlmclient -I../vendor/libgit2/deps/zlib -I../vendor/http_parser -I../vendor/libssh2/include -O3 -gdwarf-2 -flto -mmacosx-version-min=10.13 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -Wno-missing-field-initializers -Wno-unused-variable -Wno-deprecated-declarations -Wno-uninitialized -fno-strict-aliasing -MMD -MF ./Release/.deps/Release/obj.target/libgit2/vendor/libgit2/src/allocators/failalloc.o.d.raw -c

Notice new -flto and -DNDEBUG options

@ianhattendorf
Copy link
Member

What's the output of ldd nodegit.node before and after? We generally build on older compilers/libraries to ensure the binary runs on older flavors of Linux.

@ianhattendorf ianhattendorf self-requested a review September 29, 2022 15:41
@ianhattendorf ianhattendorf self-assigned this Sep 29, 2022
@julianmesa-gitkraken
Copy link
Contributor Author

ldd nodegit.node

ldd nodegit.node before:

       linux-vdso.so.1 => linux-vdso.so.1 (0x00007ffe3e5d2000)
       libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0x00007f78cd711000)
       libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0x00007f78cd638000)
       libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0x00007f78cd608000)
       libcom_err.so.2 => /usr/lib/libcom_err.so.2 (0x00007f78cd602000)
       libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f78cd3cb000)
       libm.so.6 => /usr/lib/libm.so.6 (0x00007f78cd2e3000)
       libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007f78cd2c1000)
       libc.so.6 => /usr/lib/libc.so.6 (0x00007f78cd0da000)
       /usr/lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007f78cdd0c000)
       libkrb5support.so.0 => /usr/lib/libkrb5support.so.0 (0x00007f78cd0cb000)
       libkeyutils.so.1 => /usr/lib/libkeyutils.so.1 (0x00007f78cd0c4000)
       libresolv.so.2 => /usr/lib/libresolv.so.2 (0x00007f78cd0b2000)

ldd nodegit.node after:

        linux-vdso.so.1 => linux-vdso.so.1 (0x00007fff86711000)
        libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0x00007fe43d3ae000)
        libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0x00007fe43d2d5000)
        libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0x00007fe43d2a5000)
        libcom_err.so.2 => /usr/lib/libcom_err.so.2 (0x00007fe43d29f000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007fe43d068000)
        libm.so.6 => /usr/lib/libm.so.6 (0x00007fe43cf80000)
        libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007fe43cf5e000)
        libc.so.6 => /usr/lib/libc.so.6 (0x00007fe43cd77000)
        /usr/lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007fe43d949000)
        libkrb5support.so.0 => /usr/lib/libkrb5support.so.0 (0x00007fe43cd68000)
        libkeyutils.so.1 => /usr/lib/libkeyutils.so.1 (0x00007fe43cd61000)
        libresolv.so.2 => /usr/lib/libresolv.so.2 (0x00007fe43cd4f000)

@ianhattendorf
Copy link
Member

OK that looks good, what about

  • strings /usr/lib/libstdc++.so.6 | grep libstdc++.so.6
  • strings /usr/lib/libstdc++.so.6 | grep LIBCXX

And forgot to clarify: this (and the previous ldd command) should be from the ubuntu:16.04 container.

@julianmesa-gitkraken
Copy link
Contributor Author

ldd nodegit.node

Ubuntu 16.04:
ldd nodegit.node before:

	linux-vdso.so.1 =>  (0x00007ffda0f7f000)
	libgssapi_krb5.so.2 => /usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2 (0x00007f6773244000)
	libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f6772ec2000)
	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f6772ca5000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f67728db000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f67739e8000)
	libkrb5.so.3 => /usr/lib/x86_64-linux-gnu/libkrb5.so.3 (0x00007f6772609000)
	libk5crypto.so.3 => /usr/lib/x86_64-linux-gnu/libk5crypto.so.3 (0x00007f67723da000)
	libcom_err.so.2 => /lib/x86_64-linux-gnu/libcom_err.so.2 (0x00007f67721d6000)
	libkrb5support.so.0 => /usr/lib/x86_64-linux-gnu/libkrb5support.so.0 (0x00007f6771fcb000)
	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f6771cc2000)
	libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f6771aac000)
	libkeyutils.so.1 => /lib/x86_64-linux-gnu/libkeyutils.so.1 (0x00007f67718a8000)
	libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007f677168d000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f6771489000)

ldd nodegit.node after:

        linux-vdso.so.1 =>  (0x00007ffc8bfbd000)
	libgssapi_krb5.so.2 => /usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2 (0x00007f986276f000)
	libkrb5.so.3 => /usr/lib/x86_64-linux-gnu/libkrb5.so.3 (0x00007f986249d000)
	libk5crypto.so.3 => /usr/lib/x86_64-linux-gnu/libk5crypto.so.3 (0x00007f986226e000)
	libcom_err.so.2 => /lib/x86_64-linux-gnu/libcom_err.so.2 (0x00007f986206a000)
	libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f9861ce8000)
	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f98619df000)
	libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f98617c9000)
	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f98615ac000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f98611e2000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f9862ed6000)
	libkrb5support.so.0 => /usr/lib/x86_64-linux-gnu/libkrb5support.so.0 (0x00007f9860fd7000)
	libkeyutils.so.1 => /lib/x86_64-linux-gnu/libkeyutils.so.1 (0x00007f9860dd3000)
	libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007f9860bb8000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f98609b4000)

strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep libstdc++.so.6

libstdc++.so.6
libstdc++.so.6.0.21

strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep LIBCXX

GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_3.4.20
GLIBCXX_3.4.21
GLIBCXX_DEBUG_MESSAGE_LENGTH

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants