Openwall GNU/*/Linux - a small security-enhanced Linux distro for servers
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date: Sat, 01 Dec 2018 22:07:53 +0000
From: argante <>
To: "" <>
Subject: static linking problem


Does anyone have any idea why this is happening? The compiler (7.3.0) doesn't produce a statically linked binaries.

# cat test.c
#include <stdio.h>
int main() { printf("hello..\n"); return 0; }
# gcc -static test.c
# ldd a.out
	ldd (0x7f67f767e000)
# readelf -d a.out

Dynamic section at offset 0x1e88 contains 16 entries:
  Tag        Type                         Name/Value
 0x0000000000000010 (SYMBOLIC)           0x0
 0x000000000000000c (INIT)               0x290
 0x000000000000000d (FINI)               0x1207
 0x0000000000000004 (HASH)               0x158
 0x0000000000000005 (STRTAB)             0x180
 0x0000000000000006 (SYMTAB)             0x168
 0x000000000000000a (STRSZ)              1 (bytes)
 0x000000000000000b (SYMENT)             24 (bytes)
 0x0000000000000015 (DEBUG)              0x0
 0x0000000000000003 (PLTGOT)             0x202000
 0x0000000000000007 (RELA)               0x188
 0x0000000000000008 (RELASZ)             264 (bytes)
 0x0000000000000009 (RELAENT)            24 (bytes)
 0x000000006ffffffb (FLAGS_1)            Flags: PIE
 0x000000006ffffff9 (RELACOUNT)          11
 0x0000000000000000 (NULL)               0x0

# /usr/local/musl/bin/musl-gcc -static test.c
# ldd a.out
	ldd (0x7f5a608f9000)
# gcc -static -specs=/lib/musl-gcc.specs test.c
# ldd a.out
	ldd (0x7fb6c936f000)
# gcc -v
Using built-in specs.
Target: x86_64-linux-musl
Configured with: ./configure CFLAGS='-Os -g0' CXXFLAGS= --enable-languages=c,c++ --disable-nls --disable-multilib --disable-werror --disable-libmudflap --disable-libsanitizer --disable-gnu-indirect-function --disable-libmpx --disable-libssp --disable-symver --disable-libgomp --disable-fixed-point --enable-tls --enable-deterministic-archives --enable-__cxa_atexit --enable-default-pie --build=x86_64-linux-musl
Thread model: posix
gcc version 7.3.0 (GCC)

without '-static' everything looks ok

# gcc test.c
# ldd a.out
	/lib/ (0x7ff0dca25000) => /lib/ (0x7ff0dca25000)

Best regards

Powered by blists - more mailing lists

Your e-mail address:

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.