On Wed, Sep 06, 2023 at 01:52:51PM +0100, Zé Loff wrote: > > 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é > > -- > >
Bad choice of subject line. It's obviously not being stripped. The issue is that make package / make install go fetch the package from the repository instead of packaging the newly compiled code: $ sha256 /usr/ports/packages/amd64/ftp/R-4.2.3.tgz SHA256 (/usr/ports/packages/amd64/ftp/R-4.2.3.tgz) = f36b4b99633dd1ab666c0a6f4b5adcf45f0c0ddac32551177b6907b447e93519 $ cd /tmp $ ftp http://cdn.openbsd.org/pub/OpenBSD/snapshots/packages/amd64/R-4.2.3.tgz $ sha256 R-4.2.3.tgz SHA256 (R-4.2.3.tgz) = f36b4b99633dd1ab666c0a6f4b5adcf45f0c0ddac32551177b6907b447e93519 --