build executables with -fPIE, not -fPIC
authorDebian Med Packaging Team <debian-med-packaging@lists.alioth.debian.org>
Fri, 26 Jul 2024 19:37:28 +0000 (15:37 -0400)
committerAaron M. Ucko <ucko@debian.org>
Fri, 26 Jul 2024 19:37:28 +0000 (15:37 -0400)
* -fPIC is only useful for shared libraries; substitute -fPIE (along
   with -pie at link time) when building executables.

Author: Aaron M. Ucko <ucko@debian.org>
Last-Update: 2012-05-10

Gbp-Pq: Name use_pie_for_apps

c++/src/build-system/Makefile.app.in

index 74767522ac8a5bae41f8f93c78387f63a43bbed6..f43c75c3c2087c8a9a6cc852fa9c055444cdb9bf 100644 (file)
@@ -25,8 +25,8 @@ default_rule: all
 ### C/C++ source file compilation setup
 
 CPPFLAGS     += -DNCBI_APP_BUILT_AS=$(APP)
-CXXFLAGS_ALL = @f_compile@ $(CXXFLAGS) $(LOCAL_CPPFLAGS) $(CPPFLAGS)
-CFLAGS_ALL   = @f_compile@ $(CFLAGS) $(LOCAL_CPPFLAGS) $(CPPFLAGS)
+CXXFLAGS_ALL = @f_compile@ $(CXXFLAGS:-fPIC=-fPIE) $(LOCAL_CPPFLAGS) $(CPPFLAGS)
+CFLAGS_ALL   = @f_compile@ $(CFLAGS:-fPIC=-fPIE) $(LOCAL_CPPFLAGS) $(CPPFLAGS)
 SOURCES      = @UNIX_SRC@ $(SRC)
 
 ### Standard application build rules
@@ -59,7 +59,7 @@ PROJ_TYPE = app
 include $(builddir)/Makefile.$(Rules)
 
 CMD_BASE = $(LINK_WRAPPER) $(LINK)
-CMD_BASEARGS = $(LDFLAGS) $(APP_LDFLAGS) $(XOBJ) $(XOBJ2) $(PRE_LIBS)
+CMD_BASEARGS = $(LDFLAGS) $(APP_LDFLAGS) -fPIE -pie $(XOBJ) $(XOBJ2) $(PRE_LIBS)
 CMD_TAIL = @f_outexe@$(XAPP) $(LINK_FILTER)
 CMD_ARGS  = $(CMD_BASEARGS) $(XLIB)  $(XAPP_LIBS)
 CMD_ARGS2 = $(CMD_BASEARGS) $(XLIB2) $(XAPP_LIBS2)