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 {
129129 try cflags.append("-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS");
130130 try cflags.append("-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS");
131131 try cflags.append("-D_LIBCPP_HAS_NO_VENDOR_AVAILABILITY_ANNOTATIONS");
132 try cflags.append("-fvisibility=hidden");
133 try cflags.append("-fvisibility-inlines-hidden");
132134
133135 if (target.abi.isMusl()) {
134136 try cflags.append("-D_LIBCPP_HAS_MUSL_LIBC");
......@@ -144,7 +146,6 @@ pub fn buildLibCXX(comp: *Compilation) !void {
144146 try cflags.append("-fPIC");
145147 }
146148 try cflags.append("-nostdinc++");
147 try cflags.append("-fvisibility-inlines-hidden");
148149 try cflags.append("-std=c++14");
149150 try cflags.append("-Wno-user-defined-literals");
150151
......@@ -249,6 +250,8 @@ pub fn buildLibCXXABI(comp: *Compilation) !void {
249250 try cflags.append("-D_LIBCXXABI_BUILDING_LIBRARY");
250251 try cflags.append("-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS");
251252 try cflags.append("-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS");
253 try cflags.append("-fvisibility=hidden");
254 try cflags.append("-fvisibility-inlines-hidden");
252255
253256 if (target.abi.isMusl()) {
254257 try cflags.append("-D_LIBCPP_HAS_MUSL_LIBC");
src/libunwind.zig+2
......@@ -69,6 +69,8 @@ pub fn buildStaticLib(comp: *Compilation) !void {
6969 }
7070 try cflags.append("-D_LIBUNWIND_DISABLE_VISIBILITY_ANNOTATIONS");
7171 try cflags.append("-Wa,--noexecstack");
72 try cflags.append("-fvisibility=hidden");
73 try cflags.append("-fvisibility-inlines-hidden");
7274
7375 // This is intentionally always defined because the macro definition means, should it only
7476 // build for the target specified by compiler defines. Since we pass -target the compiler