86 lines
2.7 KiB
Diff
86 lines
2.7 KiB
Diff
Build static libs without -fPIC and only if BUILD_STATIC=yes
|
|
|
|
https://bugs.gentoo.org/379849
|
|
|
|
Patch written by Kacper Kowalik <xarthisius@gentoo.org>
|
|
--- a/Makefile
|
|
+++ b/Makefile
|
|
@@ -7,6 +7,8 @@
|
|
# for compatibility with old releases
|
|
CFLAGS += ${OPT_CFLAGS}
|
|
override CFLAGS += -I.
|
|
+# build static libraries by default
|
|
+BUILD_STATIC ?= yes
|
|
|
|
# find out if compiler supports __thread
|
|
THREAD_SUPPORT := $(shell if $(CC) $(CFLAGS) threadtest.c -o threadtest \
|
|
@@ -24,6 +26,7 @@
|
|
|
|
CLEANFILES := numactl.o libnuma.o numactl numademo numademo.o distance.o \
|
|
memhog libnuma.so libnuma.so.1 numamon numamon.o syscall.o bitops.o \
|
|
+ distance.pic.o libnuma.pic.o syscall.pic.o \
|
|
memhog.o util.o stream_main.o stream_lib.o shm.o stream clearcache.o \
|
|
test/pagesize test/tshared test/mynode.o test/tshared.o mt.o empty.o empty.c \
|
|
test/mynode test/ftok test/prefered test/randmap \
|
|
@@ -40,11 +43,16 @@
|
|
libdir := ${prefix}/$(shell ./getlibdir)
|
|
docdir := ${prefix}/share/doc
|
|
|
|
+NUMA_LIBS = libnuma.so
|
|
+ifeq ($(BUILD_STATIC),yes)
|
|
+NUMA_LIBS+= libnuma.a
|
|
+endif
|
|
+
|
|
all: numactl migratepages migspeed libnuma.so numademo numamon memhog \
|
|
test/tshared stream test/mynode test/pagesize test/ftok test/prefered \
|
|
test/randmap test/nodemap test/distance test/tbitmap test/move_pages \
|
|
test/mbind_mig_pages test/migrate_pages test/realloc_test libnuma.a \
|
|
- test/node-parse numastat
|
|
+ test/node-parse numastat ${NUMA_LIBS}
|
|
|
|
numactl: numactl.o util.o shm.o bitops.o libnuma.so
|
|
|
|
@@ -81,13 +89,14 @@
|
|
|
|
libnuma.so.1: versions.ldscript
|
|
|
|
-libnuma.so.1: libnuma.o syscall.o distance.o affinity.o sysfs.o rtnetlink.o
|
|
+libnuma.so.1: libnuma.pic.o syscall.pic.o distance.pic.o affinity.pic.o sysfs.pic.o rtnetlink.pic.o
|
|
${CC} ${LDFLAGS} -shared -Wl,-soname=libnuma.so.1 -Wl,--version-script,versions.ldscript -Wl,-init,numa_init -Wl,-fini,numa_fini -o libnuma.so.1 $(filter-out versions.ldscript,$^)
|
|
|
|
libnuma.so: libnuma.so.1
|
|
ln -sf libnuma.so.1 libnuma.so
|
|
|
|
-libnuma.o : CFLAGS += -fPIC
|
|
+%.pic.o: %.c
|
|
+ ${CC} -fPIC ${CPPFLAGS} ${CFLAGS} -c $< -o $@
|
|
|
|
AR ?= ar
|
|
RANLIB ?= ranlib
|
|
@@ -95,16 +104,6 @@
|
|
$(AR) rc $@ $^
|
|
$(RANLIB) $@
|
|
|
|
-distance.o : CFLAGS += -fPIC
|
|
-
|
|
-syscall.o : CFLAGS += -fPIC
|
|
-
|
|
-affinity.o : CFLAGS += -fPIC
|
|
-
|
|
-sysfs.o : CFLAGS += -fPIC
|
|
-
|
|
-rtnetlink.o : CFLAGS += -fPIC
|
|
-
|
|
test/tshared: test/tshared.o libnuma.so
|
|
|
|
test/mynode: test/mynode.o libnuma.so
|
|
@@ -143,7 +148,9 @@
|
|
mkdir -p ${libdir}
|
|
install -m 0755 libnuma.so.1 ${libdir}
|
|
cd ${libdir} ; ln -sf libnuma.so.1 libnuma.so
|
|
+ifeq ($(BUILD_STATIC),yes)
|
|
install -m 0644 libnuma.a ${libdir}
|
|
+endif
|
|
mkdir -p ${prefix}/include
|
|
install -m 0644 numa.h numaif.h numacompat1.h ${prefix}/include
|
|
install -m 0755 numastat ${prefix}/bin
|