cc: error: unrecognized command line option ‘-no-pie’

Bug #1839865 reported by Stuart
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
CFFI
New
Undecided
Unassigned

Bug Description

I cannot load cffi-libffi in SBCL:

```
* (load "~/quicklisp/setup.lisp")
T

* (ql:quickload :cffi-libffi)
To load "cffi-libffi":
  Load 1 ASDF system:
    cffi-libffi
; Loading "cffi-libffi"
; pkg-config libffi --cflags

; cc -o /root/.cache/common-lisp/sbcl-1.5.2-linux-x64/root/quicklisp/dists/quicklisp/software/cffi_0.20.1/libffi/libffi-types__grovel-tmpGHU3ALSV.o -c -g -Wall -Wundef -Wsign-compare -Wpointer-arith -O3 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Wunused-parameter -fno-omit-frame-pointer -momit-leaf-frame-pointer -fno-pie -fPIC -I/root/quicklisp/dists/quicklisp/software/cffi_0.20.1/ /root/.cache/common-lisp/sbcl-1.5.2-linux-x64/root/quicklisp/dists/quicklisp/software/cffi_0.20.1/libffi/libffi-types__grovel.c
/root/.cache/common-lisp/sbcl-1.5.2-linux-x64/root/quicklisp/dists/quicklisp/software/cffi_0.20.1/libffi/libffi-types__grovel.c: In function ‘main’:
/root/.cache/common-lisp/sbcl-1.5.2-linux-x64/root/quicklisp/dists/quicklisp/software/cffi_0.20.1/libffi/libffi-types__grovel.c:12:7: warning: unused variable ‘autotype_tmp’ [-Wunused-variable]
   int autotype_tmp;
       ^
; cc -o /root/.cache/common-lisp/sbcl-1.5.2-linux-x64/root/quicklisp/dists/quicklisp/software/cffi_0.20.1/libffi/libffi-types__grovel-tmpAAURSO1 -g -Wl,--export-dynamic -no-pie /root/.cache/common-lisp/sbcl-1.5.2-linux-x64/root/quicklisp/dists/quicklisp/software/cffi_0.20.1/libffi/libffi-types__grovel.o
cc: error: unrecognized command line option ‘-no-pie’

debugger invoked on a CFFI-GROVEL:GROVEL-ERROR in thread #<THREAD "main thread" RUNNING {10005305B3}>: Subprocess #<UIOP/LAUNCH-PROGRAM::PROCESS-INFO {1002898A43}>
 with command ("cc" "-o" "/root/.cache/common-lisp/sbcl-1.5.2-linux-x64/root/quicklisp/dists/quicklisp/software/cffi_0.20.1/libffi/libffi-types__grovel-tmpAAURSO1" "-g" "-Wl,--export-dynamic" "-no-pie" "/root/.cache/common-lisp/sbcl-1.5.2-linux-x64/root/quicklisp/dists/quicklisp/software/cffi_0.20.1/libffi/libffi-types__grovel.o")
 exited with error code 1
```

I am using SBCL 1.5.2, ASDF 3.3.1 and quicklisp 2019-02-16 on a Debian 8 64-bit system (kernel 3.16.0-8-amd64). I have deleted and reinstalled quicklisp.

Revision history for this message
Mirko Vukovic (mirko-vukovic) wrote :

I got the same error on SBCL 2.0, CentOS 7.3 (I need this package for gsll), but then the error dissapeared.

Here is the story.

After getting the error, I executed the offending command in bash, and got the following error:
$ gcc -o /export/home/mirkov/.cache/common-lisp/sbcl-2.0.0-linux-x64/export/home/mirkov/.roswell/lisp/quicklisp/dists/quicklisp/software/cffi_0.23.0/libffi/libffi-types__grovel-tmpG8099TO3 -g -Wl,--export-dynamic -no-pie /export/home/mirkov/.cache/common-lisp/sbcl-2.0.0-linux-x64/export/home/mirkov/.roswell/lisp/quicklisp/dists/quicklisp/software/cffi_0.23.0/libffi/libffi-types__grovel.o
gcc: error: unrecognized command line option '-no-pie'

I then in bash changed the -no-pie option to -fno-pie. With that change the command executes succesfully.

From there the story gets murky. I *think* (as I did not keep notes) that the *ld-exe-flags* in c-toolchains.lisp contained the offending option. While trying to figuring out how *ld-exe-flags* gets its value, putting `break' here and there, recompiling functions, the error vanished.

Once the error vanished, the library compiled cleanly as did gsll.

Furthermore, I repeated the library installation on another account with its own quicklisp repo. The error did nor recurr.

Best regards,

Mirko

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.