2.1.2pre1 outlook
Andreas Jaeger
aj@arthur.rhein-neckar.de
Wed Jul 14 22:58:00 GMT 1999
>>>>> 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
More information about the Libc-hacker
mailing list