linker-scripts

Loader scripts for ARM STR7xx

I'm trying to program ARM using Eclipse + CDT + yagarto (gnu toolchain) + OpenOCD. In several sample projects (from yagarto site for example) I found linker scripts (*.ld) where a lot of linking information specified (along with sections definitions). Actually I haven't faced this files before (IAR doesn't need them), and I find them som...

Limiting visibility of symbols when linking shared libraries

Some platforms mandate that you provide a list of a shared library's external symbols to the linker. However, on most unixish systems that's not necessary: all non-static symbols will be available by default. My understanding is that the GNU toolchain can optionally restrict visibility just to symbols explicitly declared. How can that b...

Aligning static arrays in the .bss section of linker file

I have a function: void testfunction() { static char_t theChar1 = 1; static unsigned char smallArray[1]; static unsigned char largeArray[135]; ... } and a linker file: . = ALIGN(4); _edata = . ; PROVIDE (edata = .); .bss (NOLOAD) : { __bss_start = . ; __bss_start__ = . ; *(.bss) *(.bss.*) *(COMMO...

Using a Linker Script on Mac OS X

Is there any way to use a linker script with ld on Mac OS X? The GNU ld program on Linux accepts a -T <scriptname> option, but on Mac OS -T is an unknown command option. Using an alternative installation of GCC is okay with me, if that solves the problem. ...

Unknown linking error

I'm developing my own OS, but for this I need to touch on linking, then I've done this linking script to build it: ENTRY (loader) SECTIONS{ . = 0x00100000 .text : { *(.text) } .bss : { sbss = .; *(COMMON) *(.bss) ebss = .; } } .data ALIGN (0x1000) : { start_ctors = .; *(.ctor*) e...

powerpc-eabi-objcopy creates 1GByte file

Hello, my elf-file is about 1MByte with all debug symbols. As I try to create a binary file with "powerpc-eabi-objcopy -O binary out.elf out.bin" the out.bin is 1GByte huge. The build script looks like this STARTUP(vectors.o) ENTRY(__exception_reset) INPUT(extras.o) GROUP( libtarget.a libgcc.a libsupc++.a ) MEMORY { rom : ORIGIN = 0x...

Adding MEMORY specifications to a GNU linker script causes segfault

I obtained a generic linker script using "ld --verbose test.o" and simply added a memory section. From what I understand this should work fine, but no matter how I setup the memory section the resulting program never functions properly. (ld generated linker script can be found here). tl;dr; How do you use MEMORY{...} correctly in GNU ...

gcc/ld - create a new libc.so with __isoc99_sscanf@@GLIBC_2.7 symbol from glibc.2.6

Hello I haw an appl, which do a error: /lib/libc.so.6: version `GLIBC_2.7' not found But the only symbol it needs from glibc 2.7 is __isoc99_sscanf@@GLIBC_2.7 I want to write a small 1 function "library" with this symbol as alias to __sscanf() How can I do this with gcc/ld? My variant is not accepted because "@@" symbols int ...