about summary refs log tree commit diff
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)
downloadglibc-d819080cbadbd4b820ba77fe8c9b5ed0cbbfe581.tar.gz
glibc-d819080cbadbd4b820ba77fe8c9b5ed0cbbfe581.tar.xz
glibc-d819080cbadbd4b820ba77fe8c9b5ed0cbbfe581.zip
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 */