Age | Commit message (Collapse) | Author |
|
* hashexec.c (check_hashbang): Count characters in interp
correctly. Fix from Kalle Olavi Niemitalo <tosi@stekt.oulu.fi>.
|
|
* exec.c (do_exec): Set interp.file to MACH_PORT_NULL before the
first `goto out'.
|
|
|
|
* exectrans.c: Obsolete file removed.
|
|
* exectrans.c: Obsolete file removed.
* Makefile (DIST_FILES): Remove it.
|
|
* main.c (trivfs_allow_open): Initialize to zero.
(trivfs_support_read, trivfs_support_write): Likewise.
(trivfs_support_exec): Variable removed.
|
|
|
|
* hashexec.c (check_hashbang): Use strpbrk directly instead of strsep.
Fix up INTERP_LEN properly in the no-argument case.
|
|
|
|
* main.c (S_exec_init): Don't use MOVE_SEND in Hurd RPC.
|
|
|
|
* exec.c (do_exec): Use ports_get_send_right.
|
|
|
|
* 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.
|