Opened 4 years ago

Closed 4 years ago

Last modified 4 years ago

#12114 closed enhancement (fixed)

execvpe not implemented

Reported by: miqlas Owned by: nobody
Priority: normal Milestone: Unscheduled
Component: System/POSIX Version: R1/Development
Keywords: execvpe Cc: miqlas@…
Blocked By: Blocking:
Has a Patch: no Platform: All


I got this error message as i tried to compile Nim on the latest Haiku nightly gcc2h:

nimcache/stdlib_osproc.o: In function `startprocessafterfork_145004':
stdlib_osproc.c:(.text+0x2a80): undefined reference to `execvpe'
collect2: error: ld returned 1 exit status
Error: execution of an external program failed

I understand, this is not required for POSIX compatibility, but it would make the port of Nim lot easier. Of course, we can implement it in the Nim patchset, but unfortunately the Nim bootstrap generating some files, what require execpve, so it is not possible to patch these files.

Here is the source from klibc:

Change History (5)

comment:1 Changed 4 years ago by korli

Resolution: no change required
Status: newclosed

From, I understand Haiku isn't the only platform without execvpe support, and that a workaround might be in the works.

Good luck with porting and please don't forget to post your findings about nim at Haikuports!

comment:2 Changed 4 years ago by axeld

Resolution: no change required
Status: closedreopened

I took the liberty to implement it for Haiku, too. It's pretty much a one-liner.

comment:3 Changed 4 years ago by axeld

Resolution: fixed
Status: reopenedclosed

Implemented in hrev49438.

comment:4 in reply to:  3 Changed 4 years ago by Anarchos

Replying to axeld:

Implemented in hrev49438.


The function exect() executes a file with the program tracing facilitiesenabled (see ptrace(2)).


Last edited 4 years ago by Anarchos (previous) (diff)

comment:5 Changed 4 years ago by axeld

Thanks! Since we don't support that this way, we should really remove it then (it didn't work anyway, just worked like a normal exec).

Note: See TracTickets for help on using tickets.