mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-29 11:41:21 +03:00
Update.
2003-05-28 Ulrich Drepper <drepper@redhat.com> * include/libc-symbols.h: Define hidden attribute for real also if LIBC_NONSHARED is defined. Patch by Jakub Jelinek. * csu/Makefile: Add rules to build Scrt1.o. * sysdeps/i386/elf/start.S: Make code compilable with SHARED.
This commit is contained in:
@ -1,3 +1,11 @@
|
|||||||
|
2003-05-28 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
|
* include/libc-symbols.h: Define hidden attribute for real also if
|
||||||
|
LIBC_NONSHARED is defined. Patch by Jakub Jelinek.
|
||||||
|
|
||||||
|
* csu/Makefile: Add rules to build Scrt1.o.
|
||||||
|
* sysdeps/i386/elf/start.S: Make code compilable with SHARED.
|
||||||
|
|
||||||
2003-05-27 Jakub Jelinek <jakub@redhat.com>
|
2003-05-27 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
* stdio-common/vfprintf.c (process_arg, process_string_arg): Use
|
* stdio-common/vfprintf.c (process_arg, process_string_arg): Use
|
||||||
|
19
csu/Makefile
19
csu/Makefile
@ -31,11 +31,12 @@ routines = init-first libc-start $(libc-init) sysdep version check_fds \
|
|||||||
aux = errno
|
aux = errno
|
||||||
elide-routines.os = libc-tls
|
elide-routines.os = libc-tls
|
||||||
static-only-routines = elf-init
|
static-only-routines = elf-init
|
||||||
csu-dummies = $(filter-out $(start-installed-name),crt1.o Mcrt1.o)
|
csu-dummies = $(filter-out $(start-installed-name),crt1.o Scrt1.o Mcrt1.o)
|
||||||
extra-objs = start.o gmon-start.o \
|
extra-objs = start.o gmon-start.o \
|
||||||
$(start-installed-name) g$(start-installed-name) $(csu-dummies)
|
$(start-installed-name) g$(start-installed-name) $(csu-dummies)
|
||||||
omit-deps = $(patsubst %.o,%,$(start-installed-name) g$(start-installed-name) \
|
omit-deps = $(patsubst %.o,%,$(start-installed-name) g$(start-installed-name) \
|
||||||
b$(start-installed-name) $(csu-dummies))
|
b$(start-installed-name) $(csu-dummies) \
|
||||||
|
S$(start-installed-name))
|
||||||
install-lib = $(start-installed-name) g$(start-installed-name) $(csu-dummies)
|
install-lib = $(start-installed-name) g$(start-installed-name) $(csu-dummies)
|
||||||
distribute = initfini.c gmon-start.c start.c defs.awk munch.awk \
|
distribute = initfini.c gmon-start.c start.c defs.awk munch.awk \
|
||||||
abi-note.S init.c munch-tmpl.c not-cancel.h
|
abi-note.S init.c munch-tmpl.c not-cancel.h
|
||||||
@ -49,6 +50,11 @@ all: # Make this the default target; it will be defined in Rules.
|
|||||||
|
|
||||||
include ../Makeconfig
|
include ../Makeconfig
|
||||||
|
|
||||||
|
ifeq (yes,$(build-shared))
|
||||||
|
extra-objs += S$(start-installed-name)
|
||||||
|
install-lib += S$(start-installed-name)
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq (yes,$(build-bounded))
|
ifeq (yes,$(build-bounded))
|
||||||
extra-objs += b$(start-installed-name)
|
extra-objs += b$(start-installed-name)
|
||||||
install-lib += b$(start-installed-name)
|
install-lib += b$(start-installed-name)
|
||||||
@ -149,6 +155,9 @@ ifeq (yes,$(elf))
|
|||||||
$(objpfx)$(start-installed-name): $(objpfx)start.o $(objpfx)abi-note.o \
|
$(objpfx)$(start-installed-name): $(objpfx)start.o $(objpfx)abi-note.o \
|
||||||
$(objpfx)init.o
|
$(objpfx)init.o
|
||||||
$(link-relocatable)
|
$(link-relocatable)
|
||||||
|
$(objpfx)S$(start-installed-name): $(objpfx)start.os $(objpfx)abi-note.o \
|
||||||
|
$(objpfx)init.o
|
||||||
|
$(link-relocatable)
|
||||||
$(objpfx)b$(start-installed-name): $(objpfx)start.ob $(objpfx)abi-note.ob \
|
$(objpfx)b$(start-installed-name): $(objpfx)start.ob $(objpfx)abi-note.ob \
|
||||||
$(objpfx)init.ob
|
$(objpfx)init.ob
|
||||||
$(link-relocatable)
|
$(link-relocatable)
|
||||||
@ -158,6 +167,9 @@ else
|
|||||||
$(objpfx)$(start-installed-name): $(objpfx)start.o
|
$(objpfx)$(start-installed-name): $(objpfx)start.o
|
||||||
rm -f $@
|
rm -f $@
|
||||||
ln $< $@
|
ln $< $@
|
||||||
|
$(objpfx)S$(start-installed-name): $(objpfx)start.os
|
||||||
|
rm -f $@
|
||||||
|
ln $< $@
|
||||||
$(objpfx)b$(start-installed-name): $(objpfx)start.ob
|
$(objpfx)b$(start-installed-name): $(objpfx)start.ob
|
||||||
rm -f $@
|
rm -f $@
|
||||||
ln $< $@
|
ln $< $@
|
||||||
@ -174,7 +186,8 @@ $(addprefix $(objpfx),$(sort g$(start-installed-name) \
|
|||||||
|
|
||||||
# These extra files are sometimes expected by system standard linking
|
# These extra files are sometimes expected by system standard linking
|
||||||
# procedures, but we have nothing for them to do. So compile empty files.
|
# procedures, but we have nothing for them to do. So compile empty files.
|
||||||
$(addprefix $(objpfx),$(filter-out $(start-installed-name),$(csu-dummies))):\
|
$(addprefix $(objpfx),$(filter-out $(start-installed-name)\
|
||||||
|
S$(start-installed-name),$(csu-dummies))):\
|
||||||
$(before-compile)
|
$(before-compile)
|
||||||
$(COMPILE.c) -o $@ -x c /dev/null
|
$(COMPILE.c) -o $@ -x c /dev/null
|
||||||
|
|
||||||
|
@ -441,7 +441,8 @@
|
|||||||
strong_alias(real, name)
|
strong_alias(real, name)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined HAVE_VISIBILITY_ATTRIBUTE && defined SHARED
|
#if defined HAVE_VISIBILITY_ATTRIBUTE \
|
||||||
|
&& (defined SHARED || defined LIBC_NONSHARED)
|
||||||
# define attribute_hidden __attribute__ ((visibility ("hidden")))
|
# define attribute_hidden __attribute__ ((visibility ("hidden")))
|
||||||
#else
|
#else
|
||||||
# define attribute_hidden
|
# define attribute_hidden
|
||||||
|
@ -1 +1 @@
|
|||||||
NPTL 0.40 by Ulrich Drepper
|
NPTL 0.41 by Ulrich Drepper
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Startup code compliant to the ELF i386 ABI.
|
/* Startup code compliant to the ELF i386 ABI.
|
||||||
Copyright (C) 1995,1996,1997,1998,2000,2001, 2002 Free Software Foundation, Inc.
|
Copyright (C) 1995-1998,2000,2001,2002,2003 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -67,6 +67,27 @@ _start:
|
|||||||
pushl %edx /* Push address of the shared library
|
pushl %edx /* Push address of the shared library
|
||||||
termination function. */
|
termination function. */
|
||||||
|
|
||||||
|
#ifdef SHARED
|
||||||
|
/* Load PIC register. */
|
||||||
|
call 1f
|
||||||
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
||||||
|
|
||||||
|
/* Push address of our own entry points to .fini and .init. */
|
||||||
|
leal __libc_csu_fini@GOTOFF(%ebx), %eax
|
||||||
|
pushl %eax
|
||||||
|
leal __libc_csu_init@GOTOFF(%ebx), %eax
|
||||||
|
pushl %eax
|
||||||
|
|
||||||
|
pushl %ecx /* Push second argument: argv. */
|
||||||
|
pushl %esi /* Push first argument: argc. */
|
||||||
|
|
||||||
|
leal BP_SYM (main)@GOTOFF(%ebx), %eax
|
||||||
|
pushl %eax
|
||||||
|
|
||||||
|
/* Call the user's main function, and exit with its value.
|
||||||
|
But let the libc call main. */
|
||||||
|
call BP_SYM (__libc_start_main)@PLT
|
||||||
|
#else
|
||||||
/* Push address of our own entry points to .fini and .init. */
|
/* Push address of our own entry points to .fini and .init. */
|
||||||
pushl $__libc_csu_fini
|
pushl $__libc_csu_fini
|
||||||
pushl $__libc_csu_init
|
pushl $__libc_csu_init
|
||||||
@ -79,9 +100,15 @@ _start:
|
|||||||
/* Call the user's main function, and exit with its value.
|
/* Call the user's main function, and exit with its value.
|
||||||
But let the libc call main. */
|
But let the libc call main. */
|
||||||
call BP_SYM (__libc_start_main)
|
call BP_SYM (__libc_start_main)
|
||||||
|
#endif
|
||||||
|
|
||||||
hlt /* Crash if somehow `exit' does return. */
|
hlt /* Crash if somehow `exit' does return. */
|
||||||
|
|
||||||
|
#ifdef SHARED
|
||||||
|
1: movl (%esp), %ebx
|
||||||
|
ret
|
||||||
|
#endif
|
||||||
|
|
||||||
/* To fulfill the System V/i386 ABI we need this symbol. Yuck, it's so
|
/* To fulfill the System V/i386 ABI we need this symbol. Yuck, it's so
|
||||||
meaningless since we don't support machines < 80386. */
|
meaningless since we don't support machines < 80386. */
|
||||||
.section .rodata
|
.section .rodata
|
||||||
|
Reference in New Issue
Block a user