This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

gold - Addresses of zero-initialized globals are not shown in Mapfile


Hi all,

In a project we switched from "ld" to "gold". The performance is great!
Version of gold:
GNU gold (GNU Binutils for Debian 2.25) 1.11

However there is one issue I want to solve:
I do not see the addresses of global zero initialized variables in the map file!

Example: 
I have the following tiny C-source code (t.c):

int global_zero;
int global_one = 1;
int main(void)
{
    return 0;
}

I compile this on a Linux x86-64 (amd64) machine:
gcc -Wl,-fuse-ld=gold -Xlinker -Map=Mapfile t.c
In the Mapfile I can see the following:
-----------------------------------------------------
...
Allocating common symbols
Common symbol       size              file

global_zero         0x4               /tmp/cc3JpgFt.o
...
 .data          0x0000000000401930        0x4 /tmp/cc3JpgFt.o
                   0x0000000000401930                global_one
 .data          0x0000000000401934        0x0 /usr/lib/x86_64-linux-gnu/libc_nonshared.a(elf-init.oS)
...
-----------------------------------------------------

The address of global_one is shown, the address of global_zero is not shown!



When I compile the same code using the linker "ld":
gcc -Wl,-fuse-ld=gold -Xlinker -Map=Mapfile t.c
I got the following information in the Mapfile:
-----------------------------------------------------
...
Allocating common symbols
Common symbol       size              file

global_zero         0x4               /tmp/ccjPds2R.o
...
.data                0x00000000006008a8        0x4 /tmp/ccjPds2R.o
                        0x00000000006008a8                global_one
...

 *(COMMON)
 *fill*                0x00000000006008ad       0x3
 COMMON    0x00000000006008b0        0x4 /tmp/ccjPds2R.o
                       0x00000000006008b0                global_zero
...
-----------------------------------------------------

Here I can see both addresses of global_one and global_zero.

My question is now:
How can I force the "gold" linker to output also the address of the zero-initialized variables?
Is there any command line argument I can use for that?

Thanks for any feedback on this question:


Best regards

Mathias



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]