Fix bcc.lua build issue in Ubuntu 17.04
authorYonghong Song <yhs@fb.com>
Fri, 30 Jun 2017 05:46:29 +0000 (22:46 -0700)
committerYonghong Song <yhs@fb.com>
Fri, 30 Jun 2017 05:46:29 +0000 (22:46 -0700)
In fc25 box, gcc6.3.1 is configured with pie default off.
Here, pie stands for position independent execution.

In ubuntu 17.04, gcc6.3.0, however, is configured with
pie default on. The gcc driver automatically adds -pie
to the linker options.

Since bcc.lua build needs pie off, previously, -fno-pie
is passed to the compiler. -fno-pie is a gcc option
impacting the code generation and it didn't
negate the -pie option in the linker. The correct way
seems to use gcc linker option -no-pie which can
successfully cancel the default -pie in the linker.

Signed-off-by: Yonghong Song <yhs@fb.com>
src/lua/CMakeLists.txt

index 28dc67969875d60a2b3fd9ee7ff78feadb7ffc83..6ad0e874f4cfcb604ec9a30a95d20ad42f3bc2b7 100644 (file)
@@ -24,7 +24,7 @@ if (LUAJIT_LIBRARIES AND LUAJIT)
        set_target_properties(bcc-lua PROPERTIES LINKER_LANGUAGE C)
        target_link_libraries(bcc-lua ${LUAJIT_LIBRARIES})
        target_link_libraries(bcc-lua -Wl,--whole-archive bcc-static -Wl,--no-whole-archive)
-       target_link_libraries(bcc-lua -fno-pie)
+       target_link_libraries(bcc-lua -no-pie)
 
        install(TARGETS bcc-lua RUNTIME DESTINATION bin)
 endif()