Forum > Other

Building Lazarus 3.4 with FreePascal 3.2.2 fails under OpenBSD 7.5

<< < (26/27) > >>

marcov:
I think that is the program loader (ld.so) doing that call, and also some mmaps and mprotects after it to set up the memory area for the new binary.

To me it sounds like ld.so chokes on the binary rather than the binary itself crashing. Running in gdb and setting a breakpoint on the entry point (typically _start) might confirm that. If it doesn't hit it, it never gets to the program.

DonAlfredo:
Again.
I can successfully build (fixes) compiler ppc1 on 7.5
Running ppc1 goes well and shows all the expected output.
On exit, it crashes.

marcov:

--- Quote from: DonAlfredo on June 22, 2024, 02:14:15 pm ---Again.
I can successfully build (fixes) compiler ppc1 on 7.5
Running ppc1 goes well and shows all the expected output.
On exit, it crashes.

--- End quote ---

I was wrong. While the shared library still calls exit via a syscall, main programs don't, they call the symbol "exit".

Fred vS:

--- Quote from: DonAlfredo on June 22, 2024, 02:14:15 pm ---Again.
I can successfully build (fixes) compiler ppc1 on 7.5
Running ppc1 goes well and shows all the expected output.
On exit, it crashes.

--- End quote ---

The same here, ppc1 runs but crash when compiling system.pp.

[EDIT] Hum, no, here ppc1 does not run ok, doing this "nude" to test:

--- Code: Pascal  [+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i < x.length; i++) { x[i].style.maxHeight='none'; x[i].style.height = Math.min(x[i].clientHeight+15,306)+'px'; x[i].style.resize = "vertical";}};} ---# /fpc_fixes3.2/compiler/ppc1--> Crash with segmentation fault error (core dumped).

[EDIT2] and ktrace ppc1 gives the same result as a nude app compiled on 7.5 (see previous post)

Fred vS:
Hello.

Some other news concerning new ld.so from Changelog 7.5: https://www.openbsd.org/plus75.html

--- Code: Bash  [+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i < x.length; i++) { x[i].style.maxHeight='none'; x[i].style.height = Math.min(x[i].clientHeight+15,306)+'px'; x[i].style.resize = "vertical";}};} ---- Made the kernel read pinsyscall tables out of PT_OPENBSD_SYSCALLS in the main program or ld.so,   and accept a submission of that information for libc.so from ld.so via pinsyscalls(2).    At system call invocation, the syscall number is matched to the specific address from which it must come. - Changed ld.so to only load the first libc version encountered requested and substituting it for all further loads,   ensuring that the libc version requested by an executable itself is the one loaded. - Ensured the syscall table entries for libc and ld.so are aligned on a 4-byte boundary. - Populated the non-LOAD openbsd.syscalls section (and PT_OPENBSD_SYSCALL)   with {uint offset, uint syscall#} entries in libc and ld.so. 
I suspect there is something to explore on how to handle their new ld.bfd/ld.so.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version