Age | Commit message (Collapse) | Author |
|
|
|
* exec.c [! EXECDATA_STREAM] (prepare_stream): Replace no-op with real
function to initialize map_* members to zero.
|
|
* priv.h (EXECDATA_STREAM): Define this only #ifdef BFD.
The non-BFD exec server is now completely independent of stdio magic;
it uses only those interfaces documented in the C library manual,
which are provided both by old GNU stdio and by GNU libio.
Resurrecting the BFD exec server will require using magic again,
for which libio-specific magic needs to be written.
|
|
|
|
* priv.h (EXECDATA_STREAM): New macro, always defined for now.
(struct execdata) [! EXECDATA_STREAM]: Add members
map_buffer, map_bsize, map_fsize, map_filepos in place of stream.
(map_buffer, map_filepos, map_set_fsize): New macros for accessing
those or stream.
[! EXECDATA_STREAM] (map_fsize, map_vsize): Define using new members.
* exec.c (map): Rewritten purely using those accessor macros.
(input_room): Set the __target, __bufp, __error, and __eof members,
which are no longer set by map.
[! EXECDATA_STREAM] (prepare_stream, prepare_in_memory): Make no-ops.
(input_room, close_exec_stream, fake_seek, prepare_stream,
prepare_in_memory): Conditionalize these defns on [EXECDATA_STREAM].
(load_section): Always use map instead of stdio.
Replace bcopy with memcpy.
(check_gzip: zipread): Rewrite using map instead of stdio.
(check_bzip2: zipread): Likewise.
|
|
|
|
* hashexec.c (check_hashbang): Fix up multiple fencepost brainos.
|
|
|
|
* hashexec.c (check_hashbang): Fix fencepost error in last change.
|
|
|
|
* exec.c (map): Made global.
* priv.h: Declare it.
(map_fsize, map_vsize): New macros for accessing state set up by map.
* hashexec.c (check_hashbang): Use map and copying operations rather
than stdio to extract the first line from the file. Move finish call
to immediately after reading the line.
|
|
* exec.c (map): Made global.
* priv.h: Declare it.
(map_fsize, map_vsize): New macros for accessing state set up by map.
* hashexec.c (check_hashbang): Use map and copying operations rather
than stdio to extract the first line from the file. Move finish call
to immediately after reading the line.
* exec.c (map): If E->file_data is set, diagnose EOF before going to
direct io_read.
(prepare_in_memory): New function, broken out of check_gzip before
last change.
(check_gzip, check_bzip2): Use it.
|
|
|
|
* exec.c (prepare_stream): New function, broken out of prepare.
(prepare): Call it.
[_STDIO_USES_IOSTREAM]: Do #error if this is defined.
(map, input_room, close_exec_stream, fake_seek, prepare_stream):
Conditionalize all these definitions on [! _STDIO_USES_IOSTREAM].
Only map and prepare_stream are called from elsewhere in the code.
(check_gzip): Don't reinitialize E->stream, since it will in fact not
be used again.
(check_bzip2): Likewise.
|
|
|
|
* hostarch.c (elf_machine_matches_host): Don't recognize EM_486,
since newer <elf.h>'s don't define it any more.
|
|
|
|
* hashexec.c (check_hashbang: user_fd): Add a user ref to DTABLE[FD]
send right, because caller (hurd_file_name_lookup internals) will
consume one.
* hashexec.c (check_hashbang): When dealloc'ing DTABLE ports,
optimize out syscall for null ports.
|
|
|
|
* exectrans.c (trivfs_support_write, trivfs_support_exec): Variables
removed.
(trivfs_allow_open): Set to just O_READ.
|
|
|
|
* Makefile (exec.static-LDFLAGS): Variable removed.
|
|
|
|
* exec.c (servercopy): Removed unused variable.
|
|
|
|
* exec.c (load_section): Fix typos in last change.
|
|
* exec.c (load_section): Use mmap instead of vm_allocate when
allocating in mach_task_self ().
(servercopy): Likewise.
(do_exec): Likewise.
* hashexec.c (check_hashbang): Likewise.
|
|
|
|
* hostarch.c (mach_host_elf_machine): Replaced with ...
(elf_machine_matches_host): New function. Instead of returning
an ELF EM_* code, take one and check if it matches the host;
operate only on mach_host_self(), cache results,
Grok CPU_TYPE_{I486,PENTIUM,PENTIUMPRO} to accept EM_386 or EM_486.
Grok POWERPC, ALPHA, HPPA types.
* exec.c (check_elf): Call elf_machine_matches_host instead of
comparing against elf_machine.
(load_section): #if 0 out no-op code that uses elf_machine.
* priv.h (elf_machine_matches_host): Declare it.
(elf_machine, mach_host_elf_machine): Remove decls.
* main.c (main) [!BFD]: Don't call mach_host_elf_machine.
(elf_machine): Variable removed.
|
|
|
|
* exec.c (check_elf): Call elf_machine_matches_host instead of
comparing against elf_machine.
(load_section): #if 0 out no-op code that uses elf_machine.
* priv.h (elf_machine_matches_host): Declare it.
(elf_machine, mach_host_elf_machine): Remove decls.
* main.c (main) [!BFD]: Don't call mach_host_elf_machine.
(elf_machine): Variable removed.
* exec.c (map): Don't cast arg to munmap to vm_address_t.
|
|
* exec.c (check_elf): Call elf_machine_matches_host instead of
comparing against elf_machine.
(load_section): #if 0 out no-op code that uses elf_machine.
* priv.h (elf_machine_matches_host): Declare it.
(elf_machine, mach_host_elf_machine): Remove decls.
* main.c (main) [!BFD]: Don't call mach_host_elf_machine.
(elf_machine): Variable removed.
|
|
* exec.c (check_elf): Call elf_machine_matches_host instead of
comparing against elf_machine.
(load_section): #if 0 out no-op code that uses elf_machine.
* priv.h (elf_machine_matches_host): Declare it.
(elf_machine, mach_host_elf_machine): Remove decls.
* main.c (main) [!BFD]: Don't call mach_host_elf_machine.
(elf_machine): Variable removed.
* priv.h: Add #include <sys/mman.h> for munmap decl.
|
|
* core.c (core_dump_task): Use munmap instead of vm_deallocate,
when it's from our own task.
* elfcore.c: Likewise.
* exec.c (load_section): Likewise.
(map): Likewise.
(close_exec_stream): Likewise.
(finish_mapping): Likewise.
(load): Likewise.
(do_exec): Likewise.
(S_exec_setexecdata): Likewise.
* hashexec.c (check_hashbang): Likewise.
* main.c (deadboot): Likewise.
|
|
|
|
* exec.c (map): Fix mapping calls to use F->__offset consistently
instead of F->__target.
|
|
|
|
* hashexec.c (check_hashbang): Fix bug in last change.
|
|
|
|
* hashexec.c (check_hashbang): Trim trailing blanks after interpreter
argument.
|
|
* do-bunzip2.c: New file.
* exec.c (check_bzip2): New function.
(BZIP2): New cpp symbol. If defined, bunzip2 engine is enabled.
* Makefile (bzip2-objects): New variable.
(OBJS): Add bzip2-objects.
(CPPFLAGS): Add -DBZIP2.
|
|
|
|
* exec.c (do_exec): Implement EXEC_SIGTRAP flag.
|
|
|
|
* main.c (S_exec_init): Deallocate PROCSERVER port when finished.
|
|
|
|
* Makefile (HURDLIBS): Add missing implied library deps.
|
|
* main.c (S_exec_init): Remove variable DEV_MASTER; pass null instead
since we don't need it. Use assert_perror on getting the host-priv
port and on startup_essential_task, since init will hang until we've
done made that RPC.
1998-12-21 Roland McGrath <roland@baalperazim.frob.com>
* main.c (S_exec_init): Don't call set_active_trans.
(set_active_trans): Function removed.
|
|
* exec.c (do_exec): Fix conditional for cleaning up INTERP,
from nonnull E.interp.section to nonnull INTERP.file.
If we failed to open the interpreter file, INTERP.file will be
null and the rest of INTERP will be uninitialized.
|
|
|