aboutsummaryrefslogtreecommitdiff
path: root/src/link.cpp
AgeCommit message (Collapse)Author
2017-05-02add safe release build modeAndrew Kelley
closes #288
2017-04-30zig build: organize build artifactsAndrew Kelley
closes #328
2017-04-28zig puts temporary object files in zig-cache folderAndrew Kelley
See #298
2017-04-27zig test no longer requires a separate test_runner.o fileAndrew Kelley
See #298
2017-04-26build system: consolidate duplicate code and moreAndrew Kelley
* add ability to add assembly files when building an exe, obj, or lib * add implicit cast from `[N]T` to `?[]const T` (closes #343) * remove link_exe and link_lib in favor of allowing build_exe and build_lib support no root zig source file
2017-04-25add some timing diagnosticsAndrew Kelley
pass --enable-timing-info to print a nice table like this: ``` Name Start End Duration Percent Initialize 0.0000 0.0000 0.0000 0.0001 Semantic Analysis 0.0000 0.0421 0.0420 0.2109 Code Generation 0.0421 0.0620 0.0200 0.1003 LLVM Emit Object 0.0620 0.1852 0.1231 0.6180 Build Dependencies 0.1852 0.1974 0.0122 0.0615 LLVM Link 0.1974 0.1993 0.0018 0.0093 Generate .h 0.1993 0.1993 0.0000 0.0000 Total 0.0000 0.1993 0.1993 1.0000 ```
2017-04-19convert assemble and link tests to zig build systemAndrew Kelley
2017-04-13fix crash when using zig to linkAndrew Kelley
without explicit dynamic linker
2017-04-11run alwaysinline pass in debug modeAndrew Kelley
before this commit, the optimized IR code that is displayed in --verbose mode is not actually what gets emitted to an object file. that is now corrected, and we make sure to run the alwaysinliner pass even in debug mode, so you can rely on "inline" keyword inlining a function, guaranteed. See #306
2017-04-10fix some -Wconversion errorsAndrew Kelley
2017-04-05add support to use zig as a linker driverAndrew Kelley
closes #243 I also added --grep to ./run_tests if you want to single out some specific tests
2017-04-04link: correctly print debug linker invocationAndrew Kelley
2017-04-04link: fix ignoring first linker argAndrew Kelley
LLD treats the first argument as arg[0], the exe name
2017-04-03link: delete code that checks the linker versionAndrew Kelley
since we depend on LLD for linking
2017-03-26add stack protector safety when linking libcAndrew Kelley
* introduce zigrt file. it contains only weak symbols so that multiple instances can be merged. it contains __zig_panic so that multiple .o files can call the same panic function. * remove `@setFnVisible` builtin and add @setGlobalLinkage builtin which is more powerful * add `@panic` builtin function. * fix collision of symbols with extern prototypes and internal function names * add stack protector safety when linking against libc. To add the safety mechanism without libc requires implementing Thread Local Storage. See #276
2017-03-26organize std and make import relative to current fileAndrew Kelley
closes #216
2017-03-22unify main entry point regardless of whether linking libcAndrew Kelley
closes #248
2017-03-13add --each-lib-rpath option and corresponding config optionAndrew Kelley
This adds an rpath entry for each used dynamic library directory. This is necessary on some systems such as NixOS.
2017-03-13use lld instead of system linkerAndrew Kelley
2017-02-03in freestanding environment, assume gnu binutilsAndrew Kelley
for now. soon LLD will free us from depending on system linkers.
2017-02-03add ability to set linker scriptAndrew Kelley
2016-09-21fix incorrect linking from previous commitAndrew Kelley
2016-09-21exporting an object creates an h fileAndrew Kelley
2016-09-19use size_t for indexesAndrew Kelley
protect against incorrect copies in debug mode
2016-09-18ability to specify -framework linker args for MacOSAndrew Kelley
2016-09-14MacOSX compatibilityalter
- Implemented some syscall for MacOSX - tested on : El Capitan 10.11 x86_64 - make self hosted test run on macosx - modified run_test so it does not fail when parseh throws warnings (most of them are related to buildin types from gcc that arent defined in header files and unions) - making -mmacosx-version-min and -mios-version-min works like gcc (command line paramers have precedence over enviroment variables)
2016-09-10rename LLVMZig to ZigLLVMAndrew Kelley
2016-09-01restore shared library functionalityAndrew Kelley
2016-05-12Add --zig-std-dirJosé Miguel Sánchez
2016-05-11recognize ar program and pass --gc-sections to ldAndrew Kelley
See #54
2016-05-07add debug safety for divisionAndrew Kelley
See #149
2016-05-07link: don't put -l in front of .a or .so filesAndrew Kelley
2016-02-17link: on windows link test runner and builtin o filesAndrew Kelley
2016-02-17os: implement windows os layerAndrew Kelley
2016-02-16rename 'environ' to 'env_type'Andrew Kelley
environ appears to clash with another symbol in mingw land
2016-02-16update bootstrap to work for macos tooAndrew Kelley
* Directives can have arbitrary expressions as parameters * Fix switch statement not generating code sometimes * Rename "main" fn in bootstrap.zig to "zig_user_main" to avoid name collisions * codegen: fix badref when unreachable is last thing in an expression * support #condition directive on exported functions
2016-02-15linking on darwin: provide builtins and -archAndrew Kelley
2016-02-15add missing system library to darwin linker jobAndrew Kelley
2016-02-15first pass at linking on macosAndrew Kelley
2016-02-15handle libc include path and libc lib path differentlyAndrew Kelley
2016-02-13respect link order in source codeAndrew Kelley
2016-02-13add @ctz, @clz and compiler_rt implementationAndrew Kelley
2016-02-12i386 supportAndrew Kelley
closes #115 Thanks to Seo Sanghyeon for the port code.
2016-02-11ability to cross compileAndrew Kelley
hello_libc.zig can produce a windows build