From: Vladimír Čunát Date: Tue, 23 Jan 2018 12:36:17 +0000 (+0100) Subject: make: use -fvisibility=hidden by default X-Git-Tag: v1.5.3~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=08cbf79dedc6cd6c598c8742fe30e4caeb948b62;p=thirdparty%2Fknot-resolver.git make: use -fvisibility=hidden by default Symbols not marked by KR_EXPORT shouldn't be visible outside the same output binary (e.g. sbin/kresd or lib/kdns_modules/hints.so) Also mark `engine_hint_root_file`. --- diff --git a/config.mk b/config.mk index a708c24bd..2ca855901 100644 --- a/config.mk +++ b/config.mk @@ -33,6 +33,7 @@ INSTALL := install BUILD_LDFLAGS += $(LDFLAGS) BUILD_CFLAGS := $(CFLAGS) -std=c99 -D_GNU_SOURCE -Wno-unused -Wtype-limits -Wformat -Wformat-security -Wall -I$(abspath .) -I$(abspath lib/generic) -I$(abspath contrib) -I$(abspath contrib/lmdb) BUILD_CFLAGS += -DPACKAGE_VERSION="\"$(VERSION)\"" -DPREFIX="\"$(PREFIX)\"" -DMODULEDIR="\"$(MODULEDIR)\"" +BUILD_CFLAGS += -fvisibility=hidden ifeq (,$(findstring -O,$(CFLAGS))) BUILD_CFLAGS += -O2 endif diff --git a/daemon/engine.h b/daemon/engine.h index 8bc667017..725aae235 100644 --- a/daemon/engine.h +++ b/daemon/engine.h @@ -105,6 +105,8 @@ int engine_set_moduledir(struct engine *engine, const char *moduledir); /** Load root hints from a zonefile (or config-time default if NULL). * * @return error message or NULL (statically allocated) + * @note exported to be usable from the hints module. */ +KR_EXPORT const char* engine_hint_root_file(struct kr_context *ctx, const char *file); diff --git a/lib/lib.mk b/lib/lib.mk index 98b2a4257..fc0064fcf 100644 --- a/lib/lib.mk +++ b/lib/lib.mk @@ -42,7 +42,7 @@ libkres_HEADERS := \ # Dependencies libkres_DEPEND := $(contrib) -libkres_CFLAGS := -fvisibility=hidden -fPIC $(lmdb_CFLAGS) +libkres_CFLAGS := -fPIC $(lmdb_CFLAGS) libkres_LIBS := $(contrib_TARGET) $(libknot_LIBS) $(libdnssec_LIBS) $(lmdb_LIBS) \ $(libuv_LIBS) $(gnutls_LIBS) libkres_TARGET := -L$(abspath lib) -lkres diff --git a/modules/cookies/cookies.mk b/modules/cookies/cookies.mk index 37c1df2b6..31d212094 100644 --- a/modules/cookies/cookies.mk +++ b/modules/cookies/cookies.mk @@ -1,4 +1,4 @@ -cookies_CFLAGS := -fvisibility=hidden -fPIC +cookies_CFLAGS := -fPIC cookies_SOURCES := \ modules/cookies/cookiectl.c \ modules/cookies/cookiemonster.c \ diff --git a/modules/dnstap/dnstap.mk b/modules/dnstap/dnstap.mk index 5311cf67d..9a44dc2d1 100644 --- a/modules/dnstap/dnstap.mk +++ b/modules/dnstap/dnstap.mk @@ -1,4 +1,4 @@ -dnstap_CFLAGS := -fvisibility=hidden -fPIC +dnstap_CFLAGS := -fPIC dnstap_SOURCES := modules/dnstap/dnstap.pb-c.c modules/dnstap/dnstap.c dnstap_DEPEND := $(libkres) modules/dnstap/dnstap.pb-c.c # because of generated *.h dnstap_LIBS := $(contrib_TARGET) $(libkres_TARGET) $(libkres_LIBS) $(libprotobuf-c_LIBS) $(libfstrm_LIBS) diff --git a/modules/hints/hints.mk b/modules/hints/hints.mk index 15b537f16..7613c1843 100644 --- a/modules/hints/hints.mk +++ b/modules/hints/hints.mk @@ -1,4 +1,4 @@ -hints_CFLAGS := -fvisibility=hidden -fPIC +hints_CFLAGS := -fPIC # We use a symbol that's not in libkres but the daemon. # On darwin this isn't accepted by default. hints_LDFLAGS := -Wl,-undefined -Wl,dynamic_lookup diff --git a/modules/memcached/memcached.mk b/modules/memcached/memcached.mk index 2eaa57c30..a1cfd171d 100644 --- a/modules/memcached/memcached.mk +++ b/modules/memcached/memcached.mk @@ -1,4 +1,4 @@ -memcached_CFLAGS := -fvisibility=hidden -fPIC +memcached_CFLAGS := -fPIC memcached_SOURCES := modules/memcached/memcached.c modules/memcached/cdb_memcached.c memcached_DEPEND := $(libkres) memcached_LIBS := $(libkres_TARGET) $(libkres_LIBS) $(libmemcached_LIBS) diff --git a/modules/redis/redis.mk b/modules/redis/redis.mk index 250605e34..d954b8e9e 100644 --- a/modules/redis/redis.mk +++ b/modules/redis/redis.mk @@ -1,4 +1,4 @@ -redis_CFLAGS := -fvisibility=hidden -fPIC +redis_CFLAGS := -fPIC redis_SOURCES := modules/redis/redis.c modules/redis/cdb_redis.c redis_DEPEND := $(libkres) redis_LIBS := $(libkres_TARGET) $(libkres_LIBS) $(hiredis_LIBS) $(libuv_LIBS) diff --git a/modules/stats/stats.mk b/modules/stats/stats.mk index 2349b174c..491fe1879 100644 --- a/modules/stats/stats.mk +++ b/modules/stats/stats.mk @@ -1,4 +1,4 @@ -stats_CFLAGS := -fvisibility=hidden -fPIC +stats_CFLAGS := -fPIC stats_SOURCES := modules/stats/stats.c stats_DEPEND := $(libkres) stats_LIBS := $(contrib_TARGET) $(libkres_TARGET) $(libkres_LIBS)