summaryrefslogtreecommitdiffstats
path: root/Makefile.am
diff options
context:
space:
mode:
authorDavid Lamparter <equinox@opensourcerouting.org>2021-07-21 11:04:23 +0200
committerDavid Lamparter <equinox@opensourcerouting.org>2021-07-21 17:10:08 +0200
commit63116a7008706988136785ffa011cefee0355193 (patch)
treebb9cd12975d5560d4c3df5d2c9e5d0e32cea33cf /Makefile.am
parentMerge pull request #8956 from pguibert6WIND/bgp_loop_through_itself (diff)
downloadfrr-63116a7008706988136785ffa011cefee0355193.tar.xz
frr-63116a7008706988136785ffa011cefee0355193.zip
build: fix `AM_LDFLAGS` usage (and gcov)
like the other automake variables, setting `xyz_LDFLAGS` causes `AM_LDFLAGS` to be ignored for `xyz`. For some reason I had in my mind that automake doesn't do this for LDFLAGS, but... it does. (Which is consistent with `_CFLAGS` and co.) So, all the libraries and modules have been ignoring `AM_LDFLAGS` (which includes `SAN_FLAGS` too). Set up new `LIB_LDFLAGS` and `MODULE_LDFLAGS` to handle all of this correctly (and move these bits to a central location.) Fixes: #9034 Fixes: 0c4285d77eb ("build: properly split CFLAGS from AC_CFLAGS") Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
Diffstat (limited to 'Makefile.am')
-rw-r--r--Makefile.am22
1 files changed, 22 insertions, 0 deletions
diff --git a/Makefile.am b/Makefile.am
index 9bc5dd7d2..ce0f70a1a 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -29,11 +29,33 @@ AM_CPPFLAGS = \
-I$(top_srcdir)/lib/assert \
$(CPPFLAGS_BASE) \
# end
+
+# AM_LDFLAGS is used for executables (daemons). LDFLAGS can be left alone,
+# but if it is changed it should include $(AM_LDFLAGS)
AM_LDFLAGS = \
-export-dynamic \
$(AC_LDFLAGS) \
+ $(AC_LDFLAGS_EXEC) \
+ $(SAN_FLAGS) \
+ # end
+
+# libraries need to use libxxx_LDFLAGS = $(LIB_LDFLAGS) -version-info X:Y:Z
+LIB_LDFLAGS = \
+ -export-dynamic \
+ $(AC_LDFLAGS) \
$(SAN_FLAGS) \
# end
+
+# modules need to use xxx_LDFLAGS = $(MODULE_LDFLAGS)
+MODULE_LDFLAGS = \
+ -export-dynamic \
+ -avoid-version \
+ -module \
+ -shared \
+ $(AC_LDFLAGS) \
+ $(SAN_FLAGS) \
+ # end
+
DEFS = @DEFS@ -DSYSCONFDIR=\"$(sysconfdir)/\" -DCONFDATE=$(CONFDATE)
AR_FLAGS = @AR_FLAGS@