Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Stage1: Add Visibility field to ExportOptions. #9831

Merged
merged 3 commits into from May 11, 2022

Conversation

mathetake
Copy link
Contributor

@mathetake mathetake commented Sep 24, 2021

Part of #9762. This PR adds Visibility field to builtin.ExportOptions in order to allow users to control the visibility of exports.

At least this is already verified to work in my local, and will do the follow up PRs after this is merged; 1) change the default visibility of compiler_rt and libc symbols, 2) add a flag for controlling the default visibility (just like -fvisibility flag in clang), and 3) support in stage 2.

@mathetake mathetake marked this pull request as ready for review Sep 24, 2021
lib/std/builtin.zig Outdated Show resolved Hide resolved
@mathetake mathetake force-pushed the llvmvisibility branch 5 times, most recently from 710161c to 9200478 Compare Sep 28, 2021
@Vexu Vexu requested a review from kubkon Jan 29, 2022
Vexu
Vexu approved these changes Feb 14, 2022
mathetake and others added 2 commits May 10, 2022
Signed-off-by: Takeshi Yoneda <takeshi@tetrate.io>
 * Rename std.builtin.GlobalVisibility to std.builtin.SymbolVisibility
 * Add missing compile error. From the LLVM language reference: "A
   symbol with internal or private linkage must have default
   visibility."
Copy link
Member

@andrewrk andrewrk left a comment

$ valgrind ./zig test ../test/behavior.zig -target powerpc-linux-musl -lc -I../test
==2828778== Invalid read of size 1
==2828778==    at 0x6EA0265: LLVMSetVisibility (in /home/andy/Downloads/zig/build/zig)
==2828778==    by 0x1BCE60B: do_code_gen(CodeGen*) (codegen.cpp:9031)
==2828778==    by 0x1BD51E2: codegen_build_object(CodeGen*) (codegen.cpp:10610)
==2828778==    by 0x1BA5C17: zig_stage1_build_object (stage1.cpp:132)
==2828778==    by 0xE61E24: Module.build_object (stage1.zig:149)
==2828778==    by 0xC3D4CE: Compilation.updateStage1Module (Compilation.zig:5025)
==2828778==    by 0xC3117E: Compilation.performAllTheWork (Compilation.zig:2691)
==2828778==    by 0xC2A3ED: Compilation.update (Compilation.zig:2098)
==2828778==    by 0xBB9D1F: main.updateModule (main.zig:3104)
==2828778==    by 0xB16B75: main.buildOutputType (main.zig:2793)
==2828778==    by 0xAD0526: main.mainArgs (main.zig:225)
==2828778==    by 0xACFCB9: main (stage1.zig:48)

```
$ valgrind ./zig test ../test/behavior.zig -target powerpc-linux-musl -lc -I../test
==2828778== Invalid read of size 1
==2828778==    at 0x6EA0265: LLVMSetVisibility (in /home/andy/Downloads/zig/build/zig)
==2828778==    by 0x1BCE60B: do_code_gen(CodeGen*) (codegen.cpp:9031)
==2828778==    by 0x1BD51E2: codegen_build_object(CodeGen*) (codegen.cpp:10610)
==2828778==    by 0x1BA5C17: zig_stage1_build_object (stage1.cpp:132)
==2828778==    by 0xE61E24: Module.build_object (stage1.zig:149)
==2828778==    by 0xC3D4CE: Compilation.updateStage1Module (Compilation.zig:5025)
==2828778==    by 0xC3117E: Compilation.performAllTheWork (Compilation.zig:2691)
==2828778==    by 0xC2A3ED: Compilation.update (Compilation.zig:2098)
==2828778==    by 0xBB9D1F: main.updateModule (main.zig:3104)
==2828778==    by 0xB16B75: main.buildOutputType (main.zig:2793)
==2828778==    by 0xAD0526: main.mainArgs (main.zig:225)
==2828778==    by 0xACFCB9: main (stage1.zig:48)
```

Since the plan is to ship stage3 for Zig 0.10.0, the stage1
implementation of this hardly matters.
@andrewrk andrewrk merged commit 458943e into ziglang:master May 11, 2022
2 of 4 checks passed
@mathetake mathetake deleted the llvmvisibility branch May 11, 2022
@mathetake
Copy link
Sponsor Author

@mathetake mathetake commented May 11, 2022

@andrewrk thank you so much for taking this over... (completely forgot about it...)! 🙇

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.

None yet

3 participants