TL,DR: Something weird is happening: the WXNEEDED is being stripped from
R's binary when creating the package.
Long version:
I need math/R to be compiled with WXNEEDED, so I add USE_WXNEEDED=Yes to
the Makefile, and roll my own package, which I then install. This has
been working fine for some time now. I did this again, after Rafael
Sadowski updated the port, but this time it failed.
The R binary is built with the WXNEEDED flag on:
$ make
...
$ objdump -x /usr/ports/pobj/R-4.2.3/build-amd64/bin/exec/R
...
OPENBSD_RANDOMIZE off 0x0000000000000e10 vaddr 0x0000000000002e10 paddr
0x0000000000002e10 align 2**3
filesz 0x0000000000000028 memsz 0x0000000000000028 flags rw-
STACK off 0x0000000000000000 vaddr 0x0000000000000000 paddr
0x0000000000000000 align 2**0
filesz 0x0000000000000000 memsz 0x0000000000000000 flags rw-
OPENBSD_WXNEEDED off 0x0000000000000000 vaddr 0x0000000000000000 paddr
0x0000000000000000 align 2**0
filesz 0x0000000000000000 memsz 0x0000000000000000 flags --x
NOTE off 0x000000000000032c vaddr 0x000000000000032c paddr
0x000000000000032c align 2**2
filesz 0x0000000000000018 memsz 0x0000000000000018 flags r--
...
But the binary that gets installed is not:
$ make install
...
$ objdump -x /usr/local/lib/R/bin/exec/R
...
OPENBSD_RANDOMIZE off 0x0000000000000dd0 vaddr 0x0000000000002dd0 paddr
0x0000000000002dd0 align 2**3
filesz 0x0000000000000028 memsz 0x0000000000000028 flags rw-
STACK off 0x0000000000000000 vaddr 0x0000000000000000 paddr
0x0000000000000000 align 2**0
filesz 0x0000000000000000 memsz 0x0000000000000000 flags rw-
NOTE off 0x00000000000002f4 vaddr 0x00000000000002f4 paddr
0x00000000000002f4 align 2**2
filesz 0x0000000000000018 memsz 0x0000000000000018 flags r--
...
Nor is the one that goes in the package:
$ find /usr/ports/packages -name R-4.2.3.tgz -delete
$ make package
...
$ cd /tmp
$ tar xzf /usr/ports/packages/amd64/ftp/R-4.2.3.tgz lib/R/bin/exec/R
$ objdump -x lib/R/bin/exec/R
...
OPENBSD_RANDOMIZE off 0x0000000000000dd0 vaddr 0x0000000000002dd0 paddr
0x0000000000002dd0 align 2**3
filesz 0x0000000000000028 memsz 0x0000000000000028 flags rw-
STACK off 0x0000000000000000 vaddr 0x0000000000000000 paddr
0x0000000000000000 align 2**0
filesz 0x0000000000000000 memsz 0x0000000000000000 flags rw-
NOTE off 0x00000000000002f4 vaddr 0x00000000000002f4 paddr
0x00000000000002f4 align 2**2
filesz 0x0000000000000018 memsz 0x0000000000000018 flags r--
...
This is on amd64 -current (Sep 3), and a fresh ports tree, synced today
(Sep 6) from CVS.
Any clues as to what might be going on?
Thanks in advance
Zé
--