summaryrefslogtreecommitdiff
path: root/sysdeps/mach/hurd/dl-sysdep.c
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>1995-07-10 09:40:15 +0000
committerRoland McGrath <roland@gnu.org>1995-07-10 09:40:15 +0000
commitd819080cbadbd4b820ba77fe8c9b5ed0cbbfe581 (patch)
treed6c0ef96e616a594bba04e704d0042365e5a77ab /sysdeps/mach/hurd/dl-sysdep.c
parent1f4a4317e1bafb185a22951f7921af4f9673811e (diff)
Mon Jul 10 05:39:21 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* 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 <roland@churchy.gnu.ai.mit.edu> * 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).
Diffstat (limited to 'sysdeps/mach/hurd/dl-sysdep.c')
-rw-r--r--sysdeps/mach/hurd/dl-sysdep.c5
1 files changed, 3 insertions, 2 deletions
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 */