potion
potion copied to clipboard
Unable to build with the new -D_FORTIFY_SOURCE=2
Maybe it's something with my environment, but the following happens when I try to follow the instructions from INSTALL.md
:
# git clone https://github.com/perl11/potion
Cloning into 'potion'...
remote: Reusing existing pack: 11270, done.
remote: Total 11270 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (11270/11270), 5.14 MiB | 1.08 MiB/s, done.
Resolving deltas: 100% (6523/6523), done.
Checking connectivity... done.
# cd potion
# git submodule update --init
Submodule '3rd/libuv' (git://github.com/rurban/libuv.git) registered for path '3rd/libuv'
Cloning into '3rd/libuv'...
remote: Counting objects: 19389, done.
remote: Compressing objects: 100% (7887/7887), done.
remote: Total 19389 (delta 11445), reused 19389 (delta 11445)
Receiving objects: 100% (19389/19389), 11.25 MiB | 2.02 MiB/s, done.
Resolving deltas: 100% (11445/11445), done.
Checking connectivity... done.
Submodule path '3rd/libuv': checked out 'b712aba084b41e2abe8ddbbaaa0843781b558be9'
# LANG=en make
MAKE core/version.h
MAKE core/config.h
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LC_COLLATE = "C",
LANG = "en"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
CC core/potion.opic -O0
In file included from core/potion.c:8:
In file included from /usr/include/stdio.h:27:
/usr/include/features.h:341:4: error: _FORTIFY_SOURCE requires compiling with optimization (-O) [-Werror,-W#warnings]
# warning _FORTIFY_SOURCE requires compiling with optimization (-O)
^
1 error generated.
Makefile:183: recipe for target 'core/potion.opic' failed
make: *** [core/potion.opic] Error 1
oops, thanks for the heads up, but it looks strange. _FORTIFY_SOURCE is only used when DEBUG is not set, so CFLAGS has -O3. Can you check your config.inc for DEBUGFLAGS including -O3?
Yup, my config.inc
does contain -O3
in DEBUGFLAGS
. Any ideas on why this might be?
# -*- makefile -*-
# created by make -f config.mak
PREFIX = /usr/local
ECHO = /bin/echo
EXE =
DLL = .so
LOADEXT = .so
CC = clang
DEFINES = -DHAVE_LIBUV -DCGOTO
DEBUGFLAGS = -O3 -finline -fno-stack-protector
WARNINGS = -Wall -Werror -Wno-variadic-macros -Wno-pointer-arith -Wno-return-type -Wno-unused-value -Wno-switch -Wno-unused-label -Wno-zero-length-array -Wno-gnu
CFLAGS = -D_GNU_SOURCE -fno-strict-aliasing -D_FORTIFY_SOURCE=2 ${DEFINES} ${DEBUGFLAGS} ${WARNINGS}
INCS = -I/home/karol/Code/potion/core -I/usr/local/include
LIBPTH = -L/home/karol/Code/potion/lib
RPATH = -Wl,-rpath=/home/karol/Code/potion/lib
RPATH_INSTALL = -Wl,-rpath=${PREFIX}/lib
LIBS = -lm -L/usr/local/lib -ldl
LDFLAGS = -Wl,--as-needed -Wl,-z,relro -Wl,-z,now
LDDLLFLAGS = -shared -fpic -Wl,--as-needed -Wl,-z,relro -Wl,-z,now
STRIP = strip -x
AR = ar
RANLIB = ranlib
CROSS = 0
APPLE = 0
WIN32 = 0
CYGWIN = 0
CLANG = 1
ICC = 0
GCC = 0
SANDBOX = 0
JIT = 1
JIT_X86 = 1
DEBUG = 0
REVISION = 1136
All looks good. I have no idea why it fails for you (selinux?) but for now just remove the
-D_FORTIFY_SOURCE=2
part from your config.inc
googling brought up nothing.
maybe you have an env var DEBUGFLAGS set?
try unset DEBUGFLAGS
then