authorgravatar for xavierb@gmail.comxavier <xavierb@gmail.com> 2021-05-23 16:53:47+02:00
committergravatar for xavierb@gmail.comxavier <xavierb@gmail.com> 2021-05-23 19:58:38+02:00
loga6e65f3a0ea4f8315be50f91338e4526b006f9d8
treedebe95e917c255012bb755354fff2d2fd34bcb31
parent40d8518253c2566fe9ba947c2e1fbce160a55940

keep statically linked libc++ symbols hidden.


2 files changed, 6 insertions(+), 1 deletions(-)

src/libcxx.zig+4-1
...@@ -129,6 +129,8 @@ pub fn buildLibCXX(comp: *Compilation) !void {...@@ -129,6 +129,8 @@ pub fn buildLibCXX(comp: *Compilation) !void {
129 try cflags.append("-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS");129 try cflags.append("-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS");
130 try cflags.append("-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS");130 try cflags.append("-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS");
131 try cflags.append("-D_LIBCPP_HAS_NO_VENDOR_AVAILABILITY_ANNOTATIONS");131 try cflags.append("-D_LIBCPP_HAS_NO_VENDOR_AVAILABILITY_ANNOTATIONS");
132 try cflags.append("-fvisibility=hidden");
133 try cflags.append("-fvisibility-inlines-hidden");
132134
133 if (target.abi.isMusl()) {135 if (target.abi.isMusl()) {
134 try cflags.append("-D_LIBCPP_HAS_MUSL_LIBC");136 try cflags.append("-D_LIBCPP_HAS_MUSL_LIBC");
...@@ -144,7 +146,6 @@ pub fn buildLibCXX(comp: *Compilation) !void {...@@ -144,7 +146,6 @@ pub fn buildLibCXX(comp: *Compilation) !void {
144 try cflags.append("-fPIC");146 try cflags.append("-fPIC");
145 }147 }
146 try cflags.append("-nostdinc++");148 try cflags.append("-nostdinc++");
147 try cflags.append("-fvisibility-inlines-hidden");
148 try cflags.append("-std=c++14");149 try cflags.append("-std=c++14");
149 try cflags.append("-Wno-user-defined-literals");150 try cflags.append("-Wno-user-defined-literals");
150151
...@@ -249,6 +250,8 @@ pub fn buildLibCXXABI(comp: *Compilation) !void {...@@ -249,6 +250,8 @@ pub fn buildLibCXXABI(comp: *Compilation) !void {
249 try cflags.append("-D_LIBCXXABI_BUILDING_LIBRARY");250 try cflags.append("-D_LIBCXXABI_BUILDING_LIBRARY");
250 try cflags.append("-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS");251 try cflags.append("-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS");
251 try cflags.append("-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS");252 try cflags.append("-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS");
253 try cflags.append("-fvisibility=hidden");
254 try cflags.append("-fvisibility-inlines-hidden");
252255
253 if (target.abi.isMusl()) {256 if (target.abi.isMusl()) {
254 try cflags.append("-D_LIBCPP_HAS_MUSL_LIBC");257 try cflags.append("-D_LIBCPP_HAS_MUSL_LIBC");
src/libunwind.zig+2
...@@ -69,6 +69,8 @@ pub fn buildStaticLib(comp: *Compilation) !void {...@@ -69,6 +69,8 @@ pub fn buildStaticLib(comp: *Compilation) !void {
69 }69 }
70 try cflags.append("-D_LIBUNWIND_DISABLE_VISIBILITY_ANNOTATIONS");70 try cflags.append("-D_LIBUNWIND_DISABLE_VISIBILITY_ANNOTATIONS");
71 try cflags.append("-Wa,--noexecstack");71 try cflags.append("-Wa,--noexecstack");
72 try cflags.append("-fvisibility=hidden");
73 try cflags.append("-fvisibility-inlines-hidden");
7274
73 // This is intentionally always defined because the macro definition means, should it only75 // This is intentionally always defined because the macro definition means, should it only
74 // build for the target specified by compiler defines. Since we pass -target the compiler76 // build for the target specified by compiler defines. Since we pass -target the compiler