pkgsrc-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
pkg/60561: libffcall unusable on NetBSD/macppc 11.0
>Number: 60561
>Category: pkg
>Synopsis: libffcall unusable on NetBSD/macppc 11.0
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: pkg-manager
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Sat Aug 08 17:55:00 +0000 2026
>Originator: Havard Eidnes
>Release: NetBSD 11.0
>Organization:
I try...
>Environment:
System: NetBSD bramley.urc.uninett.no 11.0 NetBSD 11.0 (BRAMLEY) #4: Sat Aug 8 14:36:14 CEST 2026 he%bramley.urc.uninett.no@localhost:/usr/obj/sys/arch/macppc/compile/BRAMLEY macppc
Architecture: powerpc
Machine: macppc
>Description:
While trying to follow up packages which fail to bulk-build
on NetBSD/macppc 11.0, the turn has come to lang/clisp.
As part of that, I found that once the initial build issues
are sorted out in lang/clisp, the linked lisp interpreter
fails to start with
./lisp.run -B . -N locale -E UTF-8 -Epathname 1:1 -Emisc 1:1 -norc -m 2MW -lp -x '(and (load "init.lisp") (sys::%saveinitmem) (ext::exit)) (ext::exit t)'
/usr/pkgsrc/lang/clisp/work/clisp-2.49/src/./lisp.run: Shared object "libcallback.so.1" not found
However, that package *is* installed, but ktrace'ing a simple
./lisp.run reveals
7579 7579 lisp.run CALL open(0xfff0473c,0,0xfff04758)
7579 7579 lisp.run NAMI "/usr/pkg/lib/libcallback.so.1"
7579 7579 lisp.run RET open 3
7579 7579 lisp.run CALL __fstat50(3,0xfff04658)
7579 7579 lisp.run RET __fstat50 0
7579 7579 lisp.run CALL mmap(0,0x1000,PROT_READ,0x1<SHARED,FILE,ALIGN=NONE>,3,0,0,0)
7579 7579 lisp.run RET mmap -302870528/0xedf29000
7579 7579 lisp.run CALL mmap(0,0x21000,PROT_NONE,0x10001002<PRIVATE,ANONYMOUS,ALIGN=64KB>,0xffffffff,0,0,0)
7579 7579 lisp.run RET mmap -304152576/0xeddf0000
7579 7579 lisp.run CALL mmap(0xeddf0000,0x3000,PROT_READ|PROT_EXEC,0x12<PRIVATE,FIXED,FILE,ALIGN=NONE>,3,0,0,0)
7579 7579 lisp.run RET mmap -304152576/0xeddf0000
7579 7579 lisp.run CALL mmap(0xede0f000,0x2000,PROT_READ|PROT_WRITE|PROT_EXEC,0x12<PRIVATE,FIXED,FILE,ALIGN=NONE>,3,0,0,0xf000)
7579 7579 lisp.run RET mmap -1 errno 13 Permission denied
and an inspection of the shared library reveals that .got and .plt
sections are both writeable and executable:
bramley: {132} readelf -a /usr/pkg/lib/libcallback.so | grep WAX
[20] .got PROGBITS 00020000 010000 000010 04 WAX 0 0 4
[22] .plt NOBITS 00020014 010014 00018c 00 WAX 0 0 4
bramley: {133}
and this host runs basically a GENERIC kernel, hence, PAX_MPROTECT
is turned on.
Manually turning off MPROTECT checking makes the lisp interpreter
start:
bramley: {136} paxctl lisp.run
No PaX flags.
bramley: {137} paxctl +m lisp.run
bramley: {138} paxctl lisp.run
PaX flags:
m: mprotect(2) restrictions, explicit disable
bramley: {139} ./lisp.run
WARNING: locale: no encoding 646, using ISO-8859-1
WARNING: locale: no encoding 646, using ISO-8859-1
i i i i i i i ooooo o ooooooo ooooo ooooo
I I I I I I I 8 8 8 8 8 o 8 8
I \ `+' / I 8 8 8 8 8 8
\ `-+-' / 8 8 8 ooooo 8oooo
`-__|__-' 8 8 8 8 8
| 8 o 8 8 o 8 8
------+------ ooooo 8oooooo ooo8ooo ooooo 8
Welcome to GNU CLISP 2.49 (2010-07-07) <http://clisp.cons.org/>
Copyright (c) Bruno Haible, Michael Stoll 1992, 1993
Copyright (c) Bruno Haible, Marcus Daniels 1994-1997
Copyright (c) Bruno Haible, Pierpaolo Bernardi, Sam Steingold 1998
Copyright (c) Bruno Haible, Sam Steingold 1999-2000
Copyright (c) Sam Steingold, Bruno Haible 2001-2010
Type :h and hit Enter for context help.
WARNING: No initialization file specified.
Please try: ./lisp.run -M lispinit.mem
WARNING: No installation directory specified.
Please try: ./lisp.run -B /usr/local/lib/clisp
:
But what is causing the libcallback.so shared library to
have the "wrong" protections for the .plt and .got sections
I have not managed to find out.
I have (unsuccessfully) tried adding the flags:
bramley: {56} cvs diff Makefile
Index: Makefile
===================================================================
RCS file: /cvsroot/pkgsrc/devel/libffcall/Makefile,v
retrieving revision 1.6
diff -u -p -r1.6 Makefile
--- Makefile 15 Sep 2024 13:09:51 -0000 1.6
+++ Makefile 8 Aug 2026 17:50:07 -0000
@@ -18,6 +18,9 @@ GNU_CONFIGURE= yes
CONFIGURE_ARGS+= --enable-shared
+CFLAGS+= -msecure-plt
+LDFLAGS+= -msecure-plt
+
MAKE_FLAGS+= htmldir=${PREFIX}/share/doc/ffcall
TEST_TARGET= check
bramley: {57}
so it is more involved than that.
This host has the 11.0_RC6 user-land, but I don't think
anything significant related to this changed since that.
>How-To-Repeat:
See above.
>Fix:
That would be nice...
Either that, or hints for what more to look at.
Home |
Main Index |
Thread Index |
Old Index