summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOmar Sandoval <osandov@fb.com>2019-08-26 10:51:45 -0700
committerMark Wielaard <mark@klomp.org>2019-08-28 21:45:26 +0200
commit823ee0c48e6db1134a36c6ae165a983466600fed (patch)
tree24a5e01ac094d46cbcd9a3ab26e1a8006a08bb7c
parent4fcb7ec9d788d09f1525a506e1cbe8a39fc1b8eb (diff)
downloadelfutils-823ee0c48e6db1134a36c6ae165a983466600fed.tar.gz
Add PIC and non-PIC variants of libcpu and libebl
Currently, libcpu and libebl are always compiled as PIC. An upcoming change will add the objects from libcpu.a and libebl.a to libdw.a, which should not be PIC unless configured that way. So, make libcpu.a and libebl.a non-PIC and add libcpu_pic.a and libebl_pic.a. Signed-off-by: Omar Sandoval <osandov@fb.com>
-rw-r--r--backends/ChangeLog1
-rw-r--r--backends/Makefile.am2
-rw-r--r--libcpu/ChangeLog2
-rw-r--r--libcpu/Makefile.am18
-rw-r--r--libdw/ChangeLog4
-rw-r--r--libdw/Makefile.am2
-rw-r--r--libebl/ChangeLog4
-rw-r--r--libebl/Makefile.am8
8 files changed, 32 insertions, 9 deletions
diff --git a/backends/ChangeLog b/backends/ChangeLog
index 91790bb9..3faee13e 100644
--- a/backends/ChangeLog
+++ b/backends/ChangeLog
@@ -1,6 +1,7 @@
2019-07-05 Omar Sandoval <osandov@fb.com>
* Makefile.am: Replace libcpu_{i386,x86_64,bpf}.a with libcpu.a.
+ Replace libcpu.a with libcpu_pic.a.
2019-07-13 Mao Han <han_mao@c-sky.com>
diff --git a/backends/Makefile.am b/backends/Makefile.am
index 6470a313..be470528 100644
--- a/backends/Makefile.am
+++ b/backends/Makefile.am
@@ -44,7 +44,7 @@ noinst_LIBRARIES = $(libebl_pic)
noinst_DATA = $(libebl_pic:_pic.a=.so)
-libcpu = ../libcpu/libcpu.a
+libcpu = ../libcpu/libcpu_pic.a
libelf = ../libelf/libelf.so
libdw = ../libdw/libdw.so
libeu = ../lib/libeu.a
diff --git a/libcpu/ChangeLog b/libcpu/ChangeLog
index c0ea72ec..883896a2 100644
--- a/libcpu/ChangeLog
+++ b/libcpu/ChangeLog
@@ -1,6 +1,8 @@
2019-07-05 Omar Sandoval <osandov@fb.com>
* Makefile.am: Combine libcpu_{i386,x86_64,bpf}.a into libcpu.a.
+ Make libcpu.a non-PIC by default.
+ Add libcpu_pic.a.
2018-11-04 Mark Wielaard <mark@klomp.org>
diff --git a/libcpu/Makefile.am b/libcpu/Makefile.am
index a7d9f6fd..88717361 100644
--- a/libcpu/Makefile.am
+++ b/libcpu/Makefile.am
@@ -30,15 +30,22 @@
include $(top_srcdir)/config/eu.am
AM_CPPFLAGS += -I$(srcdir)/../libelf -I$(srcdir)/../libebl \
-I$(srcdir)/../libdw -I$(srcdir)/../libasm
-AM_CFLAGS += $(fpic_CFLAGS) -fdollars-in-identifiers
+if BUILD_STATIC
+AM_CFLAGS += $(fpic_CFLAGS)
+endif
+AM_CFLAGS += -fdollars-in-identifiers
LEXCOMPILE = $(LEX) $(LFLAGS) $(AM_LFLAGS) -P$(<F:lex.l=)
LEX_OUTPUT_ROOT = lex.$(<F:lex.l=)
AM_YFLAGS = -p$(<F:parse.y=)
-noinst_LIBRARIES = libcpu.a
+noinst_LIBRARIES = libcpu.a libcpu_pic.a
+
+noinst_HEADERS = i386_dis.h x86_64_dis.h
+
+libcpu_a_SOURCES = i386_disasm.c x86_64_disasm.c bpf_disasm.c
-libcpu_a_SOURCES = i386_disasm.c i386_dis.h x86_64_disasm.c x86_64_dis.h \
- bpf_disasm.c
+libcpu_pic_a_SOURCES =
+am_libcpu_pic_a_OBJECTS = $(libcpu_a_SOURCES:.c=.os)
i386_gendis_SOURCES = i386_gendis.c i386_lex.l i386_parse.y
@@ -50,7 +57,7 @@ x86_64_disasm.o: x86_64.mnemonics $(srcdir)/x86_64_dis.h
$(AM_V_at)mv -f $@T $@
if MAINTAINER_MODE
-noinst_HEADERS = memory-access.h i386_parse.h i386_data.h
+noinst_HEADERS += memory-access.h i386_parse.h i386_data.h
noinst_PROGRAMS = i386_gendis$(EXEEXT)
@@ -86,5 +93,6 @@ bpf_disasm_CFLAGS = -Wno-format-nonliteral
EXTRA_DIST = defs/i386
+MOSTLYCLEANFILES = $(am_libcpu_pic_a_OBJECTS)
CLEANFILES += $(foreach P,i386 x86_64,$P_defs $P.mnemonics)
MAINTAINERCLEANFILES = $(foreach P,i386 x86_64, $P_dis.h)
diff --git a/libdw/ChangeLog b/libdw/ChangeLog
index 1d3586f0..a68778e6 100644
--- a/libdw/ChangeLog
+++ b/libdw/ChangeLog
@@ -1,3 +1,7 @@
+2019-07-05 Omar Sandoval <osandov@fb.com>
+
+ * Makefile.am (libdw_so_LIBS): Replace libebl.a with libebl_pic.a.
+
2019-08-25 Jonathon Anderson <jma14@rice.edu>
* dwarf_getcfi.c (dwarf_getcfi): Set default_same_value to false.
diff --git a/libdw/Makefile.am b/libdw/Makefile.am
index 7a3d5322..7dc4cec0 100644
--- a/libdw/Makefile.am
+++ b/libdw/Makefile.am
@@ -106,7 +106,7 @@ libdw_pic_a_SOURCES =
am_libdw_pic_a_OBJECTS = $(libdw_a_SOURCES:.c=.os)
libdw_so_LIBS = libdw_pic.a ../libdwelf/libdwelf_pic.a \
- ../libdwfl/libdwfl_pic.a ../libebl/libebl.a
+ ../libdwfl/libdwfl_pic.a ../libebl/libebl_pic.a
libdw_so_DEPS = ../lib/libeu.a ../libelf/libelf.so
libdw_so_LDLIBS = $(libdw_so_DEPS) -ldl -lz $(argp_LDADD) $(zip_LIBS)
libdw_so_SOURCES =
diff --git a/libebl/ChangeLog b/libebl/ChangeLog
index a772ffa3..3a836c89 100644
--- a/libebl/ChangeLog
+++ b/libebl/ChangeLog
@@ -1,6 +1,8 @@
2019-07-05 Omar Sandoval <osandov@fb.com>
- * Makefile.am (gen_SOURCES): Remove.
+ * Makefile.am: Make libebl.a non-PIC by default.
+ Add libebl_pic.a.
+ (gen_SOURCES): Remove.
2019-04-29 Mao Han <han_mao@c-sky.com>
diff --git a/libebl/Makefile.am b/libebl/Makefile.am
index ccc1a31a..b85ead01 100644
--- a/libebl/Makefile.am
+++ b/libebl/Makefile.am
@@ -28,12 +28,15 @@
## not, see <http://www.gnu.org/licenses/>.
##
include $(top_srcdir)/config/eu.am
+if BUILD_STATIC
AM_CFLAGS += $(fpic_CFLAGS)
+endif
AM_CPPFLAGS += -I$(srcdir)/../libelf -I$(srcdir)/../libdw -I$(srcdir)/../libasm
VERSION = 1
LIBEBL_SUBDIR = @LIBEBL_SUBDIR@
lib_LIBRARIES = libebl.a
+noinst_LIBRARIES = libebl_pic.a
pkginclude_HEADERS = libebl.h
@@ -57,6 +60,9 @@ libebl_a_SOURCES = eblopenbackend.c eblclosebackend.c eblreloctypename.c \
eblresolvesym.c eblcheckreloctargettype.c \
ebl_data_marker_symbol.c
+libebl_pic_a_SOURCES =
+am_libebl_pic_a_OBJECTS = $(libebl_a_SOURCES:.c=.os)
+
noinst_HEADERS = libeblP.h ebl-hooks.h
-CLEANFILES += $(am_libebl_pic_a_OBJECTS)
+MOSTLYCLEANFILES = $(am_libebl_pic_a_OBJECTS)