Skip to content

Tarik Billa

  • Web Development
    • html
    • vue.js
    • laravel
    • css
    • javascript
    • jquery
    • node.js
    • php
    • asp.net
  • Programming
    • python
    • java
    • c
    • c++
    • c#
  • git
  • android

linker-scripts

Actual default linker script and settings gcc uses

April 7, 2024 by Tarik

Well, I know that this is an old question, but I also found it frustrating that there is no precise info about options that are used during the linking process. This answer shows my journey to find them. First of all, I was looking into official docs https://gcc.gnu.org/onlinedocs/ – I searched the GCC Manual and … Read more

Categories gcc Tags gcc, linker, linker-scripts Leave a comment

Limiting visibility of symbols when linking shared libraries

April 6, 2023 by Tarik

GNU ld can do that on ELF platforms. Here is how to do it with a linker version script: /* foo.c */ int foo() { return 42; } int bar() { return foo() + 1; } int baz() { return bar() – 1; } gcc -fPIC -shared -o libfoo.so foo.c && nm -D libfoo.so | … Read more

Categories linker Tags gnu, linker, linker-scripts, shared-libraries Leave a comment

What does KEEP mean in a linker script?

March 30, 2023 by Tarik

Afaik LD keeps the symbols in the section even if symbols are not referenced. (–gc-sections). Usually used for sections that have some special meaning in the binary startup process, more or less to mark the roots of the dependency tree. (For Sabuncu below) Dependency tree: If you eliminate unused code, you analyze the code and … Read more

Categories linker Tags ld, linker, linker-scripts Leave a comment

How to get the size of an input section (to place it at the end of memory)

January 30, 2023 by Tarik

Not exactly kosher, but after digging through the source code for GNU ld it looks like you can specify the address of section after it is defined. The following linker script should give you the desired behavior: MEMORY { ram (rwx) : ORIGIN = 0x10000, LENGTH = 0x0002000 } SECTIONS { .bss (NOLOAD) : { … Read more

Categories ld Tags ld, linker-scripts Leave a comment

Tarik Billa

Software Engineer
tarikbilla@gmail.com
+8801884414000
  • Reuse a hash in YAMLApril 17, 2024
  • Dockerfile: how to redirect the output of a RUN command to a variable?April 16, 2024
  • How to cd to a directory with spaces in the directory name?April 16, 2024
  • Maximum MIME type length when storing the type in a databaseApril 16, 2024
  • What is the difference between Unit, Integration, Regression and Acceptance Testing?April 16, 2024
© 2026 Tarik Billa