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

-- 
 

Reply via email to