- User Since
- May 16 2014, 7:35 PM (157 w, 3 d)
Handle emaste comments.
Only activate -p if binary name does not contain '/' at all, not only if the patch is absolute. This is how execp(3) works.
Sun, May 21
Would ghc shipped with the dynamically-linked runtime, the change appeared to be not necessary. It is due to the fact that runtime shipped with the bootstrap compiler, as well as installed by the port, are static, cause problem. There is no mechanism to ensure ABI compatibility for the static libraries, nor it might appear in the future. On the other hand, we do (try to) maintain ABI backward compatbility for dynamic linking.
Sat, May 20
Thank you for the prompt response.
Fri, May 19
Perhaps commit the changes which do not cause a discussion, now, to reduce the patch size.
Thu, May 18
ino64 patch does not introduce any header pollution.
Sorry, it is not clear to me what should I do. Should I commit the patch from this review, and then you re-apply your preferred patch ? Or just delegate the port to you and presume that you will fix it shortly after ino64 src commit ?
Wed, May 17
For new functions in rtld, I use normal style(9), so rtld slowly migrates to proper indentation. For smaller changes to existing functions I do follow existing style of 4 spaces indent/2 spaces continuation.
Overall this looks good.
I gnerally like this simplification.
Tue, May 16
Update the message text.
Cover Ed notes.
Two small notes, this is not a review. Mostly to inform you about D10750.
I do not like these argv0 tricks, I intend to implement normal options parsing for the direct mode. One of the options would take the file descriptor number and do what your trick does. I think that this is better than the trick since it allows to easily invoke and test the functionality from the shell.
Mon, May 15
make -C sys/kern sysent make -C sys/compat/freebsd32 sysent
Update after merge with r318298.
Do malloc() in realpath(), as before. Pass only 'resolved' to realpath1(), all logic to malloc and free is now located in realpath().
Sun, May 14
Move the shift before first getenv() call in the rtld, to not depend on details of getenv() implementation.
Do not forget to reset 'env' after environment is moved,not only environ (this caused env -i /libexec/ld-elf.so.1 /bin/ls segfault in jemalloc initializer).
Fix off-by-half in copying the auxv (this caused the assertion reported by Ed).
Sat, May 13
Update comment, remove stray space after copy.
Correct (remove) re-calculation of main_argv, it was shifted right too much.
Noted by emaste.
Re-merge after the locals reordering changes were committed.
pooma% ls -l ~/build/bsd/DEV/stuff/tests/args ---x--x--x 1 kostik kostik 6234 Apr 18 2010 /usr/home/kostik/build/bsd/DEV/stuff/tests/args pooma% LD_LIBRARY_PATH=/usr/lib32 obj-i386/i386.i386/usr/home/kostik/work/build/bsd/DEV/src/libexec/rtld-elf/ld-elf.so.1 ~/build/bsd/DEV/stuff/tests/args 1 2 3 Fatal error
I.e. as expected, userspace needs to read executing binary.
My point is that ffexecve(2) -like syscall is not needed.
The patch as-is is fine.
Peter, could you, please, test this change ? The interesting load is the same as was used for testing r244240, and the UP config is probably most important, but I do not expect surprises.