aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/i386
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2017-11-01 05:37:10 -0700
committerH.J. Lu <hjl.tools@gmail.com>2017-11-01 05:37:26 -0700
commit95b93c6e0d7bf0321f265cf6e85c7fb4417cbda6 (patch)
treef43d997aba07996bd5f6b7ed8035920dcc4c2d0f /sysdeps/i386
parent1bb3653925eae1226cd18a3d700371291850b20f (diff)
downloadglibc-95b93c6e0d7bf0321f265cf6e85c7fb4417cbda6.tar
glibc-95b93c6e0d7bf0321f265cf6e85c7fb4417cbda6.tar.gz
glibc-95b93c6e0d7bf0321f265cf6e85c7fb4417cbda6.tar.bz2
glibc-95b93c6e0d7bf0321f265cf6e85c7fb4417cbda6.zip
x86: Add sysdeps/x86/sysdep.h
Add a new header file, sysdeps/x86/sysdep.h, for common assembly code macros between i386 and x86-64. Tested on i686 and x86-64. There are no differences in outputs of "readelf -a" and "objdump -dw" on all glibc shared objects before and after the patch. * sysdeps/i386/sysdep.h: Include <sysdeps/x86/sysdep.h> instead of <sysdeps/generic/sysdep.h>. (ALIGNARG): Removed. (ASM_SIZE_DIRECTIVE): Likewise. (ENTRY): Likewise. (END): Likewise. (ENTRY_CHK): Likewise. (END_CHK): Likewise. (syscall_error): Likewise. (mcount): Likewise. (PSEUDO_END): Likewise. (L): Likewise. (atom_text_section): Likewise. * sysdeps/x86/sysdep.h: New file. * sysdeps/x86_64/sysdep.h: Include <sysdeps/x86/sysdep.h> instead of <sysdeps/generic/sysdep.h>. (ALIGNARG): Removed. (ASM_SIZE_DIRECTIVE): Likewise. (ENTRY): Likewise. (END): Likewise. (ENTRY_CHK): Likewise. (END_CHK): Likewise. (syscall_error): Likewise. (mcount): Likewise. (PSEUDO_END): Likewise. (L): Likewise. (atom_text_section): Likewise.
Diffstat (limited to 'sysdeps/i386')
-rw-r--r--sysdeps/i386/sysdep.h45
1 files changed, 1 insertions, 44 deletions
diff --git a/sysdeps/i386/sysdep.h b/sysdeps/i386/sysdep.h
index d2b0860b99..5cd7f25e0d 100644
--- a/sysdeps/i386/sysdep.h
+++ b/sysdeps/i386/sysdep.h
@@ -16,7 +16,7 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
-#include <sysdeps/generic/sysdep.h>
+#include <sysdeps/x86/sysdep.h>
#include <features.h> /* For __GNUC_PREREQ. */
@@ -39,32 +39,6 @@
/* Syntactic details of assembler. */
-/* ELF uses byte-counts for .align, most others use log2 of count of bytes. */
-#define ALIGNARG(log2) 1<<log2
-#define ASM_SIZE_DIRECTIVE(name) .size name,.-name;
-
-
-/* Define an entry point visible from C.
-
- There is currently a bug in gdb which prevents us from specifying
- incomplete stabs information. Fake some entries here which specify
- the current source file. */
-#define ENTRY(name) \
- .globl C_SYMBOL_NAME(name); \
- .type C_SYMBOL_NAME(name),@function; \
- .align ALIGNARG(4); \
- C_LABEL(name) \
- cfi_startproc; \
- CALL_MCOUNT
-
-#undef END
-#define END(name) \
- cfi_endproc; \
- ASM_SIZE_DIRECTIVE(name)
-
-#define ENTRY_CHK(name) ENTRY (name)
-#define END_CHK(name) END (name)
-
/* If compiled for profiling, call `mcount' at the start of each function. */
#ifdef PROF
/* The mcount code relies on a normal frame pointer being on the stack
@@ -77,12 +51,6 @@
#define CALL_MCOUNT /* Do nothing. */
#endif
-/* Since C identifiers are not normally prefixed with an underscore
- on this system, the asm identifier `syscall_error' intrudes on the
- C name space. Make sure we use an innocuous name. */
-#define syscall_error __syscall_error
-#define mcount _mcount
-
#define PSEUDO(name, syscall_name, args) \
.globl syscall_error; \
lose: SYSCALL_PIC_SETUP \
@@ -91,10 +59,6 @@ lose: SYSCALL_PIC_SETUP \
DO_CALL (syscall_name, args); \
jb lose
-#undef PSEUDO_END
-#define PSEUDO_END(name) \
- END (name)
-
# define SETUP_PIC_REG(reg) \
.ifndef GET_PC_THUNK(reg); \
.section .gnu.linkonce.t.GET_PC_THUNK(reg),"ax",@progbits; \
@@ -129,13 +93,6 @@ GET_PC_THUNK(reg): \
#define SYSCALL_PIC_SETUP /* Nothing. */
#endif
-/* Local label name for asm code. */
-#ifndef L
-#define L(name) .L##name
-#endif
-
-#define atom_text_section .section ".text.atom", "ax"
-
#else /* __ASSEMBLER__ */
# define SETUP_PIC_REG_STR(reg) \