diff --git a/ChangeLog b/ChangeLog index c3dca119cd..8f650f8793 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2000-09-10 Ulrich Drepper + + * shlib-versions: Simplify libm entries. Correct a few Hurd entries. + + * sysdeps/generic/initfini.c: Rewrite slightly to get rid of the + ugly GMON_WEAK_START hack. + Patch by Philip Blundell . + + * sysdeps/i386/i486/bits/string.h: Pretty printing. + 2000-09-09 Ulrich Drepper * sysdeps/powerpc/dl-machine.c: Add volatile to PPC_DCBST, PPC_SYNC, diff --git a/shlib-versions b/shlib-versions index 52c0e723d1..685b8a329d 100644 --- a/shlib-versions +++ b/shlib-versions @@ -17,26 +17,20 @@ # ------------- --------------- ------------------------------ # The interface to -lm depends mostly only on cpu, not on operating system. -i.86-.*-.* libm=6 -m68k-.*-.* libm=6 sparc64-.*-linux.* libm=6 GLIBC_2.2 -sparc.*-.*-.* libm=6 alpha.*-.*-linux.* libm=6.1 -alpha.*-.*-.* libm=6 -powerpc-.*-.* libm=6 mips.*-.*-linux.* libm=6 GLIBC_2.0 GLIBC_2.2 -mips.*-.*-.* libm=6 -arm.*-.*-.* libm=6 -ia64-.*-.* libm=6.1 GLIBC_2.2 -sh.*-.*-.* libm=6 GLIBC_2.2 -s390.*-.*-linux.* libm=6 +ia64-.*-linux.* libm=6.1 GLIBC_2.2 +sh.*-.*-linux.* libm=6 GLIBC_2.2 +.*-.*-linux.* libm=6 +.*-.*-gnu-gnu.* libm=6 # We provide libc.so.6 for Linux kernel versions 2.0 and later. alpha.*-.*-linux.* libc=6.1 # Working mips versions were never released between 2.0 and 2.2. mips.*-.*-linux.* libc=6 GLIBC_2.0 GLIBC_2.2 -ia64-.*-.* libc=6.1 GLIBC_2.2 -sh.*-.*-.* libc=6 GLIBC_2.2 +ia64-.*-linux.* libc=6.1 GLIBC_2.2 +sh.*-.*-linux.* libc=6 GLIBC_2.2 sparc64-.*-linux.* libc=6 GLIBC_2.2 .*-.*-linux.* libc=6 @@ -44,13 +38,13 @@ sparc64-.*-linux.* libc=6 GLIBC_2.2 .*-.*-gnu-gnu.* libmachuser=1 # libhurduser.so.0.0 corresponds to hurd/*.defs as of 7 May 1996. -.*-.*-gnu-gnu* libhurduser=0.0 +.*-.*-gnu-gnu.* libhurduser=0.0 # libc.so.0.2 is for the Hurd alpha release 0.2. %ifdef USE_IN_LIBIO /* experimental only! */ -.*-.*-gnu-gnu* libc=0.2.90.libio GLIBC_2.2 +.*-.*-gnu-gnu.* libc=0.2.90.libio GLIBC_2.2 %else -.*-.*-gnu-gnu* libc=0.2 +.*-.*-gnu-gnu.* libc=0.2 %endif # The dynamic loader also requires different names. diff --git a/sysdeps/generic/initfini.c b/sysdeps/generic/initfini.c index 4c43941ad0..836d606cfd 100644 --- a/sysdeps/generic/initfini.c +++ b/sysdeps/generic/initfini.c @@ -61,6 +61,16 @@ asm ("\n/*@TESTS_END*/"); /* The beginning of _init: */ asm ("\n/*@_init_PROLOG_BEGINS*/"); +static void +call_gmon_start(void) +{ + extern void __gmon_start__ (void) __attribute__ ((weak)); /*weak_extern (__gmon_start__);*/ + void (*gmon_start) (void) = __gmon_start__; + + if (gmon_start) + gmon_start (); +} + SECTION (".init"); void _init (void) @@ -71,15 +81,7 @@ _init (void) gcrt1.o to reference a symbol which would be defined by some library module which has a constructor; but then user code's constructors would come first, and not be profiled. */ - extern void __gmon_start__ (void) __attribute__ ((weak)); /*weak_extern (__gmon_start__);*/ -#ifndef WEAK_GMON_START - __gmon_start__ (); -#else - void (*gmon_start) (void) = __gmon_start__; - - if (gmon_start) - gmon_start (); -#endif + call_gmon_start (); asm ("ALIGN"); asm("END_INIT"); @@ -89,19 +91,6 @@ _init (void) SECTION(".init"); } asm ("END_INIT"); -#ifndef WEAK_GMON_START -SECTION(".text"); - -/* This version of __gmon_start__ is used if no other is found. By providing - a default function we avoid the need to test whether the pointer is NULL, - which can be painful on some machines. */ - -void __attribute__ ((weak)) -__gmon_start__ (void) -{ - /* do nothing */ -} -#endif /* End of the _init epilog, beginning of the _fini prolog. */ asm ("\n/*@_init_EPILOG_ENDS*/"); diff --git a/sysdeps/i386/i486/bits/string.h b/sysdeps/i386/i486/bits/string.h index b60807286c..9d88ee3149 100644 --- a/sysdeps/i386/i486/bits/string.h +++ b/sysdeps/i386/i486/bits/string.h @@ -113,7 +113,7 @@ __memcpy_by2 (void *__dest, __const void *__src, size_t __n) __STRING_INLINE void *__memcpy_g (void *__dest, __const void *__src, size_t __n); - __STRING_INLINE void * +__STRING_INLINE void * __memcpy_g (void *__dest, __const void *__src, size_t __n) { register unsigned long int __d0, __d1, __d2;