This is the mail archive of the libc-hacker@sourceware.cygnus.com mailing list for the glibc project.
Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
>>>>> Ulrich Drepper writes: > Hi, > I will be in Montreal next week and would like to use this quiet phase > to have people test 2.1.2. I hope to make 2.1.2pre1 before or on > Sunday. > So, if you kow about any missing patches in the 2.1 branch or any bugs > which have to be fixed please let me know ASAP. Please add the following two patches. That should be all except perhaps some platform specific fixes. Andreas 1999-07-13 Jakub Jelinek <jj@ultra.linux.cz> * sysdeps/unix/sysv/linux/shmat.c (shmat): Avoid casting a pointer to int. 1999-07-13 Andreas Schwab <schwab@suse.de> * elf/dl-runtime.c (fixup, profile_fixup): Call alloca to prevent inlining. Fixes PR libc/1198. --- glibc-2-1-branch/elf/dl-runtime.c Sun Feb 21 07:13:50 1999 +++ libc/elf/dl-runtime.c Thu Jul 15 06:56:22 1999 @@ -57,6 +57,12 @@ void *const rel_addr = (void *)(l->l_addr + reloc->r_offset); ElfW(Addr) value; + /* The use of `alloca' here looks ridiculous but it helps. The goal is + to prevent the function from being inlined and thus optimized out. + There is no official way to do this so we use this trick. gcc never + inlines functions which use `alloca'. */ + alloca (sizeof (int)); + /* Sanity check that we're really looking at a PLT relocation. */ assert (ELFW(R_TYPE)(reloc->r_info) == ELF_MACHINE_JMP_SLOT); @@ -110,6 +116,12 @@ ElfW(Addr) *resultp; ElfW(Addr) value; + /* The use of `alloca' here looks ridiculous but it helps. The goal is + to prevent the function from being inlined, and thus optimized out. + There is no official way to do this so we use this trick. gcc never + inlines functions which use `alloca'. */ + alloca (sizeof (int)); + /* This is the address in the array where we store the result of previous relocations. */ resultp = &l->l_reloc_result[reloc_offset / sizeof (PLTREL)]; --- glibc-2-1-branch/sysdeps/unix/sysv/linux/shmat.c Wed Dec 16 06:57:28 1998 +++ libc/sysdeps/unix/sysv/linux/shmat.c Thu Jul 15 06:56:45 1999 @@ -1,4 +1,4 @@ -/* Copyright (C) 1995, 1997, 1998 Free Software Foundation, Inc. +/* Copyright (C) 1995, 1997, 1998, 1999 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 1995. @@ -33,11 +33,11 @@ const void *shmaddr; int shmflg; { - int retval; + long int retval; unsigned long raddr; - retval = INLINE_SYSCALL (ipc, 5, IPCOP_shmat, shmid, shmflg, (int) &raddr, - (void *) shmaddr); + retval = INLINE_SYSCALL (ipc, 5, IPCOP_shmat, shmid, shmflg, + (long int) &raddr, (void *) shmaddr); return ((unsigned long int) retval > -(unsigned long int) SHMLBA ? (void *) retval : (void *) raddr); } -- Andreas Jaeger aj@arthur.rhein-neckar.de jaeger@informatik.uni-kl.de for pgp-key finger ajaeger@aixd1.rhrk.uni-kl.de
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |