| From cf043d56638883157dbfaa8c6a8e2f63a6f66280 Mon Sep 17 00:00:00 2001 |
| From: Khem Raj <raj.khem@gmail.com> |
| Date: Thu, 29 Nov 2018 17:29:35 -0800 |
| Subject: [PATCH 26/29] inject file assembly directives |
| |
| Currently, non-IA builds are not reproducibile since build paths are |
| being injected into the debug symbols. These are coming from the use of |
| .S assembler files during the glibc build. No STT_FILE section is added |
| during the assembly but when linking, ld decides to add one to aid |
| debugging and ensure references between the different object files its |
| linking remain clear. |
| |
| We can avoid this by injecting a file header into the assembler files |
| ahead of time, choosing a filename which does not contain build system |
| paths. |
| |
| This is a bit of a workaround/hack but does significantly reduce the |
| build system references in target binaries for the non-IA architectures |
| which use .S files. |
| |
| RP |
| 2018/10/3 |
| |
| Upstream-Status: Pending |
| |
| Signed-off-by: Khem Raj <raj.khem@gmail.com> |
| --- |
| csu/abi-note.c | 2 ++ |
| sysdeps/aarch64/crti.S | 2 ++ |
| sysdeps/aarch64/crtn.S | 1 + |
| sysdeps/aarch64/dl-tlsdesc.S | 2 ++ |
| sysdeps/aarch64/dl-trampoline.S | 2 ++ |
| sysdeps/aarch64/start.S | 2 ++ |
| sysdeps/arm/crti.S | 2 ++ |
| sysdeps/arm/crtn.S | 2 ++ |
| sysdeps/arm/dl-tlsdesc.S | 2 ++ |
| sysdeps/arm/dl-trampoline.S | 2 ++ |
| sysdeps/arm/start.S | 2 ++ |
| sysdeps/mips/start.S | 2 ++ |
| sysdeps/powerpc/powerpc32/dl-start.S | 2 ++ |
| sysdeps/powerpc/powerpc32/start.S | 2 ++ |
| sysdeps/powerpc/powerpc64/start.S | 2 ++ |
| sysdeps/unix/sysv/linux/aarch64/__read_tp.S | 2 ++ |
| sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S | 2 ++ |
| sysdeps/unix/sysv/linux/arm/libc-do-syscall.S | 2 ++ |
| sysdeps/unix/sysv/linux/powerpc/dl-brk.S | 2 ++ |
| 19 files changed, 37 insertions(+) |
| |
| --- a/sysdeps/aarch64/crti.S |
| +++ b/sysdeps/aarch64/crti.S |
| @@ -50,6 +50,8 @@ |
| # define PREINIT_FUNCTION_WEAK 1 |
| #endif |
| |
| + .file "crti.S" |
| + |
| #if PREINIT_FUNCTION_WEAK |
| weak_extern (PREINIT_FUNCTION) |
| #else |
| --- a/sysdeps/aarch64/crtn.S |
| +++ b/sysdeps/aarch64/crtn.S |
| @@ -38,6 +38,7 @@ |
| corresponding to the prologues in crti.S. */ |
| |
| #include <sysdep.h> |
| + .file "crtn.S" |
| |
| .section .init,"ax",%progbits |
| ldp x29, x30, [sp], 16 |
| --- a/sysdeps/aarch64/dl-tlsdesc.S |
| +++ b/sysdeps/aarch64/dl-tlsdesc.S |
| @@ -22,6 +22,8 @@ |
| #include <tls.h> |
| #include "tlsdesc.h" |
| |
| + .file "dl-tlsdesc.S" |
| + |
| #define NSAVEDQREGPAIRS 16 |
| #define SAVE_Q_REGISTERS \ |
| stp q0, q1, [sp, #-32*NSAVEDQREGPAIRS]!; \ |
| --- a/sysdeps/aarch64/dl-trampoline.S |
| +++ b/sysdeps/aarch64/dl-trampoline.S |
| @@ -21,6 +21,8 @@ |
| |
| #include "dl-link.h" |
| |
| + .file "dl-trampoline.S" |
| + |
| #define ip0 x16 |
| #define ip0l PTR_REG (16) |
| #define ip1 x17 |
| --- a/sysdeps/aarch64/start.S |
| +++ b/sysdeps/aarch64/start.S |
| @@ -18,6 +18,8 @@ |
| |
| #include <sysdep.h> |
| |
| + .file "start.S" |
| + |
| /* This is the canonical entry point, usually the first thing in the text |
| segment. |
| |
| --- a/sysdeps/arm/crti.S |
| +++ b/sysdeps/arm/crti.S |
| @@ -57,6 +57,8 @@ |
| .hidden PREINIT_FUNCTION |
| #endif |
| |
| + .file "crti.S" |
| + |
| #if PREINIT_FUNCTION_WEAK |
| .p2align 2 |
| .type call_weak_fn, %function |
| --- a/sysdeps/arm/crtn.S |
| +++ b/sysdeps/arm/crtn.S |
| @@ -37,6 +37,8 @@ |
| #define NO_THUMB |
| #include <sysdep.h> |
| |
| + .file "crtn.S" |
| + |
| /* crtn.S puts function epilogues in the .init and .fini sections |
| corresponding to the prologues in crti.S. */ |
| |
| --- a/sysdeps/arm/dl-tlsdesc.S |
| +++ b/sysdeps/arm/dl-tlsdesc.S |
| @@ -21,6 +21,8 @@ |
| #include <tls.h> |
| #include "tlsdesc.h" |
| |
| + .file "dl-tlsdesc.S" |
| + |
| .text |
| @ emit debug information with cfi |
| @ use arm-specific pseudos for unwinding itself |
| --- a/sysdeps/arm/dl-trampoline.S |
| +++ b/sysdeps/arm/dl-trampoline.S |
| @@ -21,6 +21,8 @@ |
| #include <sysdep.h> |
| #include <libc-symbols.h> |
| |
| + .file "dl-trampoline.S" |
| + |
| .text |
| .globl _dl_runtime_resolve |
| .type _dl_runtime_resolve, #function |
| --- a/sysdeps/arm/start.S |
| +++ b/sysdeps/arm/start.S |
| @@ -57,6 +57,8 @@ |
| NULL |
| */ |
| |
| + .file "start.S" |
| + |
| /* Tag_ABI_align8_preserved: This code preserves 8-byte |
| alignment in any callee. */ |
| .eabi_attribute 25, 1 |
| --- a/sysdeps/mips/start.S |
| +++ b/sysdeps/mips/start.S |
| @@ -38,6 +38,8 @@ |
| #include <sgidefs.h> |
| #include <sys/asm.h> |
| |
| + .file "start.S" |
| + |
| #ifndef ENTRY_POINT |
| #error ENTRY_POINT needs to be defined for start.S on MIPS/ELF. |
| #endif |
| --- a/sysdeps/powerpc/powerpc32/dl-start.S |
| +++ b/sysdeps/powerpc/powerpc32/dl-start.S |
| @@ -18,6 +18,8 @@ |
| |
| #include <sysdep.h> |
| |
| + .file "dl-start.S" |
| + |
| /* Initial entry point code for the dynamic linker. |
| The C function `_dl_start' is the real entry point; |
| its return value is the user program's entry point. */ |
| --- a/sysdeps/powerpc/powerpc32/start.S |
| +++ b/sysdeps/powerpc/powerpc32/start.S |
| @@ -35,6 +35,8 @@ |
| |
| #include <sysdep.h> |
| |
| + .file "start.S" |
| + |
| /* We do not want .eh_frame info for crt1.o since crt1.o is linked |
| before crtbegin.o, the file defining __EH_FRAME_BEGIN__. */ |
| #undef cfi_startproc |
| --- a/sysdeps/powerpc/powerpc64/start.S |
| +++ b/sysdeps/powerpc/powerpc64/start.S |
| @@ -35,6 +35,8 @@ |
| |
| #include <sysdep.h> |
| |
| + .file "start.S" |
| + |
| /* We do not want .eh_frame info for crt1.o since crt1.o is linked |
| before crtbegin.o, the file defining __EH_FRAME_BEGIN__. */ |
| #undef cfi_startproc |
| --- a/sysdeps/unix/sysv/linux/aarch64/__read_tp.S |
| +++ b/sysdeps/unix/sysv/linux/aarch64/__read_tp.S |
| @@ -18,6 +18,8 @@ |
| |
| #include <sysdep.h> |
| |
| + .file "__read_tp.S" |
| + |
| .hidden __read_tp |
| ENTRY (__read_tp) |
| mrs x0, tpidr_el0 |
| --- a/sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S |
| +++ b/sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S |
| @@ -39,6 +39,8 @@ |
| a normal function call) in a high page of memory; tail call to the |
| helper. */ |
| |
| + .file "aeabi_read_tp.S" |
| + |
| .hidden __aeabi_read_tp |
| ENTRY (__aeabi_read_tp) |
| #ifdef ARCH_HAS_HARD_TP |
| --- a/sysdeps/unix/sysv/linux/arm/libc-do-syscall.S |
| +++ b/sysdeps/unix/sysv/linux/arm/libc-do-syscall.S |
| @@ -27,6 +27,8 @@ |
| ARM unwind tables for register to register moves, the actual opcodes |
| are not defined. */ |
| |
| + .file "libc-do-syscall.S" |
| + |
| #if defined(__thumb__) |
| .thumb |
| .syntax unified |
| --- a/sysdeps/unix/sysv/linux/powerpc/dl-brk.S |
| +++ b/sysdeps/unix/sysv/linux/powerpc/dl-brk.S |
| @@ -1 +1,3 @@ |
| + .file "dl-brk.S" |
| + |
| #include <brk.S> |