From d819080cbadbd4b820ba77fe8c9b5ed0cbbfe581 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Mon, 10 Jul 1995 09:40:15 +0000 Subject: Mon Jul 10 05:39:21 1995 Roland McGrath * sysdeps/mach/hurd/i386/init-first.c (init): Take just one arg, DATA for the entry SP; DATA[-1] is always the return address location. In both cthreads and non-cthreads cases, use asm to force parameters into %eax and %ecx before return, and mutate DATA[-1] to return to specific asm code to set up the user from %eax and %ecx. [PIC] (_init): Caller changed. (__libc_init_first) [! PIC] (doinit): Use asm to effect call to init with SP unwound to argument data ptr. Thu Jul 6 14:28:56 1995 Roland McGrath * sysdeps/mach/hurd/dl-sysdep.c (fmh): Fixed this kludge to work when 0x08000000 and up are not mapped. * Makerules (stamp$o-$(subdir) rule): Remove the timestamp file before touching it. (lib%.so): Use -Wl to get -soname to ld. * elf/dlsym.c: Pass final arg to _dl_lookup_symbol. * elf/Makefile (libdl.so): Pass $(LDFLAGS.so). --- sysdeps/mach/hurd/dl-sysdep.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'sysdeps/mach/hurd/dl-sysdep.c') diff --git a/sysdeps/mach/hurd/dl-sysdep.c b/sysdeps/mach/hurd/dl-sysdep.c index 471c3d1ed3..8f303bf6bb 100644 --- a/sysdeps/mach/hurd/dl-sysdep.c +++ b/sysdeps/mach/hurd/dl-sysdep.c @@ -61,14 +61,15 @@ static void fmh() { while (!(err=__vm_region(__mach_task_self(),&a,&fmhs,&x,&x,&x,&x,&p,&x))){ __mach_port_deallocate(__mach_task_self(),p); if (a+fmhs>=0x80000000U){ - max=a;break;} + max=a; break;} fmha=a+=fmhs;} if (err) assert(err==KERN_NO_SPACE); + if (!fmha)fmhs=0;else{ fmhs=max-fmha; err = __vm_map (__mach_task_self (), &fmha, fmhs, 0, 0, MACH_PORT_NULL, 0, 1, VM_PROT_NONE, VM_PROT_NONE, VM_INHERIT_COPY); - assert_perror(err); + assert_perror(err);} } /* XXX loser kludge for vm_map kernel bug */ -- cgit v1.2.3