bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug ld/22048] Incorrect .eh_frame section in libc.so


From: hjl.tools at gmail dot com
Subject: [Bug ld/22048] Incorrect .eh_frame section in libc.so
Date: Thu, 31 Aug 2017 03:28:12 +0000

https://sourceware.org/bugzilla/show_bug.cgi?id=22048

--- Comment #5 from H.J. Lu <hjl.tools at gmail dot com> ---
(In reply to H.J. Lu from comment #2)
> address@hidden glibc]$ cat elf/sofini.c 
> /* Finalizer module for ELF shared C library.  This provides terminating
>    null pointer words in the `.ctors' and `.dtors' sections.  */
> 
> #ifndef NO_CTORS_DTORS_SECTIONS
> static void (*const __CTOR_END__[1]) (void)
>      __attribute__ ((used, section (".ctors")))
>      = { 0 };
> static void (*const __DTOR_END__[1]) (void)
>      __attribute__ ((used, section (".dtors")))
>      = { 0 };
> #endif
> 
> /* Terminate the frame unwind info section with a 4byte 0 as a sentinel;
>    this would be the 'length' field in a real FDE.  */
> 
> typedef unsigned int ui32 __attribute__ ((mode (SI)));
> static const ui32 __FRAME_END__[1]
>   __attribute__ ((used, section (".eh_frame")))
>   = { 0 };
> address@hidden glibc]$

Given that there is -lgcc after elf/sofini.os:

gcc   -shared -static-libgcc -Wl,-O1  -Wl,-z,defs
-Wl,-dynamic-linker=/lib64/ld-linux-x86-64.so.2 
-B/export/build/gnu/glibc/build-x86_64-linux/csu/ 
-Wl,--version-script=/export/build/gnu/glibc/build-x86_64-linux/libc.map
-Wl,-soname=libc.so.6 -Wl,-z,combreloc -Wl,-z,relro -Wl,--hash-style=both 
-nostdlib -nostartfiles -e __libc_main
-L/export/build/gnu/glibc/build-x86_64-linux
-L/export/build/gnu/glibc/build-x86_64-linux/math
-L/export/build/gnu/glibc/build-x86_64-linux/elf
-L/export/build/gnu/glibc/build-x86_64-linux/dlfcn
-L/export/build/gnu/glibc/build-x86_64-linux/nss
-L/export/build/gnu/glibc/build-x86_64-linux/nis
-L/export/build/gnu/glibc/build-x86_64-linux/rt
-L/export/build/gnu/glibc/build-x86_64-linux/resolv
-L/export/build/gnu/glibc/build-x86_64-linux/crypt
-L/export/build/gnu/glibc/build-x86_64-linux/mathvec
-L/export/build/gnu/glibc/build-x86_64-linux/support
-L/export/build/gnu/glibc/build-x86_64-linux/nptl
-Wl,-rpath-link=/export/build/gnu/glibc/build-x86_64-linux:/export/build/gnu/glibc/build-x86_64-linux/math:/export/build/gnu/glibc/build-x86_64-linux/elf:/export/build/gnu/glibc/build-x86_64-linux/dlfcn:/export/build/gnu/glibc/build-x86_64-linux/nss:/export/build/gnu/glibc/build-x86_64-linux/nis:/export/build/gnu/glibc/build-x86_64-linux/rt:/export/build/gnu/glibc/build-x86_64-linux/resolv:/export/build/gnu/glibc/build-x86_64-linux/crypt:/export/build/gnu/glibc/build-x86_64-linux/mathvec:/export/build/gnu/glibc/build-x86_64-linux/support:/export/build/gnu/glibc/build-x86_64-linux/nptl
-o /export/build/gnu/glibc/build-x86_64-linux/linkobj/libc.so -T
/export/build/gnu/glibc/build-x86_64-linux/shlib.lds
/export/build/gnu/glibc/build-x86_64-linux/csu/abi-note.o
/export/build/gnu/glibc/build-x86_64-linux/elf/soinit.os -Wl,--whole-archive
/export/build/gnu/glibc/build-x86_64-linux/linkobj/libc_pic.a
-Wl,--no-whole-archive /export/build/gnu/glibc/build-x86_64-linux/elf/sofini.os
/export/build/gnu/glibc/build-x86_64-linux/elf/interp.os
/export/build/gnu/glibc/build-x86_64-linux/elf/ld.so -lgcc

.eh_frame section in elf/sofini.os is placed in the middle of .eh_frame
section in libc.so.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]