[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Bug#1115241: libsigc++-3.0-0 has executable stack on hppa



This should now be fixed.  libsigc++-3.0 was just rebuilt with a newer version of gcc
which enables use of GNU stack notes.  All active versions of gcc now enable GNU stack
notes on hppa.

Sadly, I've had to rebuild many packages to fix this issue in other packages.

Dave

On 2025-09-14 8:36 a.m., Mattias Ellert wrote:
> Package: libsigc++-3.0-0
> Version: 3.6.0-2
> Severity: normal
> User: debian-hppa@lists.debian.org
> Usertags: hppa
> X-Debbugs-CC: debian-hppa@lists.debian.org
> Control: affects -1 src:nordugrid-arc
> 
> The nordugrid-arc package FTBFS on hppa because the python bindings can
> not be loaded during testing due to libsigc++-3.0-0 having an
> executable stack on this architecture:
> 
> (sid_hppa-dchroot)ellert@panama:~/arc/nordugrid-arc-7.1.0/python/test/python$ PYTHONPATH=../../python:../../python/arc/.libs python3 
> Python 3.13.7 (main, Aug 20 2025, 22:17:40) [GCC 14.3.0] on linux
> Type "help", "copyright", "credits" or "license" for more information.
>>>> import _arc
> Traceback (most recent call last):
>   File "<python-input-0>", line 1, in <module>
>     import _arc
> ImportError: libsigc-3.0.so.0: cannot enable executable stack as shared object requires: Invalid argument
> 
> This can also be seen using readelf.
> 
> $ readelf -l /usr/lib/hppa-linux-gnu/libsigc-3.0.so.0.0.0
> 
> Elf file type is DYN (Shared object file)
> Entry point 0x0
> There are 6 program headers, starting at offset 52
> 
> Program Headers:
>   Type           Offset   VirtAddr   PhysAddr   FileSiz MemSiz  Flg Align
>   LOAD           0x000000 0x00000000 0x00000000 0x0bf21 0x0bf21 R E 0x1000
>   LOAD           0x00c000 0x0000c000 0x0000c000 0x00600 0x0060c RWE 0x1000
>   DYNAMIC        0x00c164 0x0000c164 0x0000c164 0x000f8 0x000f8 RW  0x4
>   NOTE           0x0000f4 0x000000f4 0x000000f4 0x00024 0x00024 R   0x4
>   GNU_EH_FRAME   0x00ad38 0x0000ad38 0x0000ad38 0x0034c 0x0034c R   0x4
>   GNU_STACK      0x000000 0x00000000 0x00000000 0x00000 0x00000 RWE 0x10
> 
>  Section to Segment mapping:
>   Segment Sections...
>    00     .note.gnu.build-id .gnu.hash .dynsym .dynstr .gnu.version .gnu.version_r .rela.dyn .rela.plt .init .text .fini .rodata .PARISC.unwind .eh_frame_hdr .eh_frame .gcc_except_table 
>    01     .init_array .fini_array .data.rel.ro .dynamic .data .plt .got .bss 
>    02     .dynamic 
>    03     .note.gnu.build-id 
>    04     .eh_frame_hdr 
>    05     
> 
> $ dpkg -S /usr/lib/hppa-linux-gnu/libsigc-3.0.so.0.0.0 
> libsigc++-3.0-0:hppa: /usr/lib/hppa-linux-gnu/libsigc-3.0.so.0.0.0
> 
> 
> Compare ro e.g. x86_64 where the stack is not market RWE, but only RW:
> 
> $ readelf -l /usr/lib/x86_64-linux-gnu/libsigc-3.0.so.0.0.0 
> 
> Elf-filtyp är DYN (delad objektfil)
> Ingångspunkt 0x0
> Det finns 9 programhuvuden, med början på avståndet 64
> 
> Programhuvuden:
>   Typ            Offset             VirtAdr            FysAdr
>                  FilStrl            MinneStrl           Flagg  Just
>   LOAD           0x0000000000000000 0x0000000000000000 0x0000000000000000
>                  0x0000000000003ac0 0x0000000000003ac0  R      0x1000
>   LOAD           0x0000000000004000 0x0000000000004000 0x0000000000004000
>                  0x0000000000003605 0x0000000000003605  R E    0x1000
>   LOAD           0x0000000000008000 0x0000000000008000 0x0000000000008000
>                  0x00000000000018c4 0x00000000000018c4  R      0x1000
>   LOAD           0x0000000000009a48 0x000000000000aa48 0x000000000000aa48
>                  0x00000000000005d0 0x00000000000005d8  RW     0x1000
>   DYNAMIC        0x0000000000009b98 0x000000000000ab98 0x000000000000ab98
>                  0x0000000000000210 0x0000000000000210  RW     0x8
>   NOTE           0x0000000000000238 0x0000000000000238 0x0000000000000238
>                  0x0000000000000024 0x0000000000000024  R      0x4
>   GNU_EH_FRAME   0x00000000000081b8 0x00000000000081b8 0x00000000000081b8
>                  0x00000000000003fc 0x00000000000003fc  R      0x4
>   GNU_STACK      0x0000000000000000 0x0000000000000000 0x0000000000000000
>                  0x0000000000000000 0x0000000000000000  RW     0x10
>   GNU_RELRO      0x0000000000009a48 0x000000000000aa48 0x000000000000aa48
>                  0x00000000000005b8 0x00000000000005b8  R      0x1
> 
>  Sektion till segment-avbildning:
>   Segmentsektioner...
>    00     .note.gnu.build-id .gnu.hash .dynsym .dynstr .gnu.version .gnu.version_r .rela.dyn .rela.plt 
>    01     .init .plt .plt.got .text .fini 
>    02     .rodata .eh_frame_hdr .eh_frame .gcc_except_table 
>    03     .init_array .fini_array .data.rel.ro .dynamic .got .data .bss 
>    04     .dynamic 
>    05     .note.gnu.build-id 
>    06     .eh_frame_hdr 
>    07     
>    08     .init_array .fini_array .data.rel.ro .dynamic .got 
> 
> 
> Mattias Ellert


-- 
John David Anglin  dave.anglin@bell.net


Reply to: