mirror of
git://git.openwrt.org/openwrt/openwrt.git
synced 2025-11-01 14:34:28 -04:00
Several changes to the elfutils source files made during the process of figuring out how to successfully build elfutils on macOS turn out to not be necessary to do so, and were most likely leftover bits during testing. Remove the line changes that are not needed and add some line changes to adapt to sources as is: - Remove now unnecessary bump to autoconf version prereq - AC_CONFIG_MACRO_DIRS is not necessary to define as ACLOCAL_AMFLAGS is already defined in Makefiles - let libtool "enable_static" variable also decide the value of the local conditional BUILD_STATIC - override configure variables instead of removing checks for libraries or additions to LDFLAGS - only exclude "hidden" attribute for macOS instead of deleting - preserve original list of sources to build for libelf - use openwrt Makefile to add gnulib headers - use openwrt Makefile to add LIBADD variables - remove deletion of variables and rules for shared objects - prefer recursively expanded variables over muliple renames each time that a word is added to its value - remove changes to subdirectories that are not built and remove changes to target files of those subdirectories - prefer basic text rename over variables in cases where there would be no line number difference - give LT_INIT forced default values that match upstream - move gl_EARLY and gl_INIT down relative to compiler checks - reorganize some line changes to save some lines Signed-off-by: Michael Pratt <mcpratt@pm.me> Link: https://github.com/openwrt/openwrt/pull/15690 Signed-off-by: Robert Marko <robimarko@gmail.com>
698 lines
23 KiB
Diff
698 lines
23 KiB
Diff
--- a/configure.ac
|
|
+++ b/configure.ac
|
|
@@ -44,6 +44,7 @@ fi
|
|
|
|
AC_CONFIG_AUX_DIR([config])
|
|
AC_CONFIG_FILES([config/Makefile])
|
|
+AC_CONFIG_FILES([libgnu/Makefile])
|
|
|
|
AC_COPYRIGHT([Copyright (C) 1996-2024 The elfutils developers.])
|
|
AC_PREREQ(2.63) dnl Minimum Autoconf version required.
|
|
@@ -88,16 +89,21 @@ AS_IF([test "$use_locks" = yes],
|
|
|
|
AH_TEMPLATE([USE_LOCKS], [Defined if libraries should be thread-safe.])
|
|
|
|
+AC_USE_SYSTEM_EXTENSIONS()
|
|
+
|
|
m4_version_prereq([2.70], [AC_PROG_CC], [AC_PROG_CC_C99])
|
|
AC_PROG_CXX
|
|
AC_PROG_RANLIB
|
|
AC_PROG_YACC
|
|
AC_PROG_LEX([noyywrap])
|
|
+gl_EARLY
|
|
# Only available since automake 1.12
|
|
m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
|
|
AC_CHECK_TOOL([READELF], [readelf])
|
|
AC_CHECK_TOOL([NM], [nm])
|
|
|
|
+LT_INIT([shared disable-static])
|
|
+
|
|
AC_CACHE_CHECK([whether gcc supports __attribute__((visibility()))],
|
|
ac_cv_visibility, [dnl
|
|
save_CFLAGS="$CFLAGS"
|
|
@@ -415,7 +421,7 @@ AS_HELP_STRING([--enable-install-elfh],[
|
|
AM_CONDITIONAL(INSTALL_ELFH, test "$install_elfh" = yes)
|
|
|
|
AM_CONDITIONAL(BUILD_STATIC, [dnl
|
|
-test "$use_gprof" = yes -o "$use_gcov" = yes])
|
|
+test "$use_gprof" = yes -o "$use_gcov" = yes -o "$enable_static" = yes])
|
|
|
|
AC_ARG_ENABLE([tests-rpath],
|
|
AS_HELP_STRING([--enable-tests-rpath],[build $ORIGIN-using rpath into tests]),
|
|
@@ -635,6 +641,8 @@ AC_COMPILE_IFELSE([AC_LANG_SOURCE([])],
|
|
CFLAGS="$old_CFLAGS"])
|
|
AS_IF([test "x$ac_cv_fno_addrsig" = "xyes"], CFLAGS="$CFLAGS -fno-addrsig")
|
|
|
|
+gl_INIT
|
|
+
|
|
saved_LIBS="$LIBS"
|
|
AC_SEARCH_LIBS([argp_parse], [argp])
|
|
LIBS="$saved_LIBS"
|
|
--- a/libelf/elf_update.c
|
|
+++ b/libelf/elf_update.c
|
|
@@ -37,6 +37,31 @@
|
|
|
|
#include "libelfP.h"
|
|
|
|
+#ifdef __APPLE__
|
|
+static int posix_fallocate(int fd, off_t offset, off_t len)
|
|
+{
|
|
+ off_t c_test;
|
|
+ int ret;
|
|
+ if (!__builtin_saddll_overflow(offset, len, &c_test)) {
|
|
+ fstore_t store = {F_ALLOCATECONTIG, F_PEOFPOSMODE, 0, offset + len, 0};
|
|
+ // Try to get a continuous chunk of disk space
|
|
+ ret = fcntl(fd, F_PREALLOCATE, &store);
|
|
+ if (ret < 0) {
|
|
+ // OK, perhaps we are too fragmented, allocate non-continuous
|
|
+ store.fst_flags = F_ALLOCATEALL;
|
|
+ ret = fcntl(fd, F_PREALLOCATE, &store);
|
|
+ if (ret < 0) {
|
|
+ return ret;
|
|
+ }
|
|
+ }
|
|
+ ret = ftruncate(fd, offset + len);
|
|
+ } else {
|
|
+ // offset+len would overflow.
|
|
+ ret = -1;
|
|
+ }
|
|
+ return ret;
|
|
+}
|
|
+#endif
|
|
|
|
static int64_t
|
|
write_file (Elf *elf, int64_t size, int change_bo, size_t shnum)
|
|
--- a/lib/eu-config.h
|
|
+++ b/lib/eu-config.h
|
|
@@ -59,14 +59,18 @@
|
|
# define once(once_control, init_routine) init_routine()
|
|
#endif /* USE_LOCKS */
|
|
|
|
-#include <libintl.h>
|
|
+#include <gettext.h>
|
|
/* gettext helper macros. */
|
|
#define N_(Str) Str
|
|
#define _(Str) dgettext ("elfutils", Str)
|
|
|
|
/* Compiler-specific definitions. */
|
|
+#ifdef __APPLE__
|
|
+#define strong_alias(name, aliasname)
|
|
+#else
|
|
#define strong_alias(name, aliasname) \
|
|
extern __typeof (name) aliasname __attribute__ ((alias (#name)));
|
|
+#endif
|
|
|
|
#ifdef __i386__
|
|
# define internal_function __attribute__ ((regparm (3), stdcall))
|
|
@@ -77,7 +81,7 @@
|
|
#define internal_strong_alias(name, aliasname) \
|
|
extern __typeof (name) aliasname __attribute__ ((alias (#name))) internal_function;
|
|
|
|
-#ifdef HAVE_VISIBILITY
|
|
+#if defined(HAVE_VISIBILITY) && !defined(__APPLE__)
|
|
#define attribute_hidden \
|
|
__attribute__ ((visibility ("hidden")))
|
|
#else
|
|
@@ -166,7 +170,7 @@ asm (".section predict_data, \"aw\"; .pr
|
|
#endif
|
|
|
|
/* Avoid PLT entries. */
|
|
-#ifdef PIC
|
|
+#if defined(PIC) && !defined(__APPLE__)
|
|
# define INTUSE(name) _INTUSE(name)
|
|
# define _INTUSE(name) __##name##_internal
|
|
# define INTDEF(name) _INTDEF(name)
|
|
--- a/libelf/Makefile.am
|
|
+++ b/libelf/Makefile.am
|
|
@@ -34,9 +34,7 @@ endif
|
|
|
|
VERSION = 1
|
|
|
|
-lib_LIBRARIES = libelf.a
|
|
-noinst_LIBRARIES = libelf_pic.a
|
|
-noinst_DATA = $(noinst_LIBRARIES:_pic.a=.so)
|
|
+lib_LTLIBRARIES = libelf.la
|
|
include_HEADERS = libelf.h gelf.h nlist.h
|
|
|
|
noinst_HEADERS = abstract.h common.h exttypes.h gelf_xlate.h libelfP.h \
|
|
@@ -51,7 +49,7 @@ endif
|
|
|
|
pkginclude_HEADERS = elf-knowledge.h
|
|
|
|
-libelf_a_SOURCES = elf_version.c elf_hash.c elf_error.c elf_fill.c \
|
|
+libelf_la_SOURCES = elf_version.c elf_hash.c elf_error.c elf_fill.c \
|
|
elf_begin.c elf_next.c elf_rand.c elf_end.c elf_kind.c \
|
|
gelf_getclass.c elf_getbase.c elf_getident.c \
|
|
elf32_fsize.c elf64_fsize.c gelf_fsize.c \
|
|
@@ -122,11 +120,8 @@ libelf.so: $(srcdir)/libelf.map $(libelf
|
|
@$(textrel_check)
|
|
$(AM_V_at)ln -fs $@ $@.$(VERSION)
|
|
|
|
-install: install-am libelf.so
|
|
+install: install-am
|
|
$(mkinstalldirs) $(DESTDIR)$(libdir)
|
|
- $(INSTALL_PROGRAM) libelf.so $(DESTDIR)$(libdir)/libelf-$(PACKAGE_VERSION).so
|
|
- ln -fs libelf-$(PACKAGE_VERSION).so $(DESTDIR)$(libdir)/libelf.so.$(VERSION)
|
|
- ln -fs libelf.so.$(VERSION) $(DESTDIR)$(libdir)/libelf.so
|
|
|
|
uninstall: uninstall-am
|
|
rm -f $(DESTDIR)$(libdir)/libelf-$(PACKAGE_VERSION).so
|
|
--- a/backends/i386_auxv.c
|
|
+++ b/backends/i386_auxv.c
|
|
@@ -48,5 +48,4 @@ EBLHOOK(auxv_info) (GElf_Xword a_type, c
|
|
return 1;
|
|
}
|
|
|
|
-__typeof (i386_auxv_info) x86_64_auxv_info
|
|
- __attribute__ ((alias ("i386_auxv_info")));
|
|
+auxv_info_alias(x86_64)
|
|
--- a/backends/ppc_regs.c
|
|
+++ b/backends/ppc_regs.c
|
|
@@ -204,5 +204,11 @@ ppc_register_info (Ebl *ebl __attribute_
|
|
return namelen;
|
|
}
|
|
|
|
-__typeof (ppc_register_info)
|
|
- ppc64_register_info __attribute__ ((alias ("ppc_register_info")));
|
|
+ssize_t
|
|
+ppc64_register_info (Ebl *ebl,
|
|
+ int regno, char *name, size_t namelen,
|
|
+ const char **prefix, const char **setname,
|
|
+ int *bits, int *type)
|
|
+{
|
|
+ return ppc_register_info(ebl, regno, name, namelen, prefix, setname, bits, type);
|
|
+}
|
|
--- a/backends/libebl_CPU.h
|
|
+++ b/backends/libebl_CPU.h
|
|
@@ -97,4 +97,10 @@ dwarf_is_pointer (int tag)
|
|
case DW_TAG_reference_type: \
|
|
case DW_TAG_rvalue_reference_type
|
|
|
|
+#define auxv_info_alias(arch) \
|
|
+ int EBLHOOK_1(arch ## _, auxv_info) (GElf_Xword a_type, const char **name, const char **format) \
|
|
+ { \
|
|
+ return EBLHOOK(auxv_info)(a_type, name, format); \
|
|
+ }
|
|
+
|
|
#endif /* libebl_CPU.h */
|
|
--- a/backends/ppc_auxv.c
|
|
+++ b/backends/ppc_auxv.c
|
|
@@ -51,5 +51,4 @@ EBLHOOK(auxv_info) (GElf_Xword a_type, c
|
|
return 1;
|
|
}
|
|
|
|
-__typeof (ppc_auxv_info) ppc64_auxv_info
|
|
- __attribute__ ((alias ("ppc_auxv_info")));
|
|
+auxv_info_alias(ppc64)
|
|
--- a/backends/ppc_cfi.c
|
|
+++ b/backends/ppc_cfi.c
|
|
@@ -72,6 +72,7 @@ ppc_abi_cfi (Ebl *ebl __attribute__ ((un
|
|
return 0;
|
|
}
|
|
|
|
-__typeof (ppc_abi_cfi)
|
|
- ppc64_abi_cfi
|
|
- __attribute__ ((alias ("ppc_abi_cfi")));
|
|
+int ppc64_abi_cfi(Ebl *ebl, Dwarf_CIE *abi_info)
|
|
+{
|
|
+ return ppc_abi_cfi(ebl, abi_info);
|
|
+}
|
|
--- a/backends/ppc_initreg.c
|
|
+++ b/backends/ppc_initreg.c
|
|
@@ -68,9 +68,10 @@ ppc_dwarf_to_regno (Ebl *ebl __attribute
|
|
abort ();
|
|
}
|
|
|
|
-__typeof (ppc_dwarf_to_regno)
|
|
- ppc64_dwarf_to_regno
|
|
- __attribute__ ((alias ("ppc_dwarf_to_regno")));
|
|
+bool ppc64_dwarf_to_regno (Ebl *ebl, unsigned *regno)
|
|
+{
|
|
+ return ppc_dwarf_to_regno(ebl, regno);
|
|
+}
|
|
|
|
bool
|
|
ppc_set_initial_registers_tid (pid_t tid __attribute__ ((unused)),
|
|
@@ -127,6 +128,7 @@ ppc_set_initial_registers_tid (pid_t tid
|
|
#endif /* __powerpc__ */
|
|
}
|
|
|
|
-__typeof (ppc_set_initial_registers_tid)
|
|
- ppc64_set_initial_registers_tid
|
|
- __attribute__ ((alias ("ppc_set_initial_registers_tid")));
|
|
+bool ppc64_set_initial_registers_tid(pid_t tid, ebl_tid_registers_t *setfunc, void *arg)
|
|
+{
|
|
+ return ppc_set_initial_registers_tid(tid, setfunc, arg);
|
|
+}
|
|
--- a/backends/ppc_attrs.c
|
|
+++ b/backends/ppc_attrs.c
|
|
@@ -81,6 +81,9 @@ ppc_check_object_attribute (Ebl *ebl __a
|
|
return false;
|
|
}
|
|
|
|
-__typeof (ppc_check_object_attribute)
|
|
- ppc64_check_object_attribute
|
|
- __attribute__ ((alias ("ppc_check_object_attribute")));
|
|
+bool ppc64_check_object_attribute(Ebl *ebl,
|
|
+ const char *vendor, int tag, uint64_t value,
|
|
+ const char **tag_name, const char **value_name)
|
|
+{
|
|
+ return ppc_check_object_attribute(ebl, vendor, tag, value, tag_name, value_name);
|
|
+}
|
|
--- a/libdwfl/libdwflP.h
|
|
+++ b/libdwfl/libdwflP.h
|
|
@@ -31,6 +31,7 @@
|
|
|
|
#include <libdwfl.h>
|
|
#include <libebl.h>
|
|
+#include <libeu.h>
|
|
#include <assert.h>
|
|
#include <dirent.h>
|
|
#include <errno.h>
|
|
--- /dev/null
|
|
+++ b/lib/stdio_ext.h
|
|
@@ -0,0 +1,6 @@
|
|
+#include <stdio.h>
|
|
+#ifndef __APPLE__
|
|
+#include_next <stdio_ext.h>
|
|
+#else
|
|
+#define __fsetlocking(...) 0
|
|
+#endif
|
|
--- a/libdw/libdwP.h
|
|
+++ b/libdw/libdwP.h
|
|
@@ -32,6 +32,7 @@
|
|
#include <stdbool.h>
|
|
#include <pthread.h>
|
|
|
|
+#include <libeu.h>
|
|
#include <libdw.h>
|
|
#include <dwarf.h>
|
|
|
|
--- a/libdw/Makefile.am
|
|
+++ b/libdw/Makefile.am
|
|
@@ -34,14 +34,12 @@ endif
|
|
AM_CPPFLAGS += -I$(srcdir)/../libebl -I$(srcdir)/../libelf -I$(srcdir)/../libdwelf -pthread
|
|
VERSION = 1
|
|
|
|
-lib_LIBRARIES = libdw.a
|
|
-noinst_LIBRARIES = libdw_pic.a
|
|
-noinst_DATA = $(noinst_LIBRARIES:_pic.a=.so)
|
|
+lib_LTLIBRARIES = libdw.la
|
|
|
|
include_HEADERS = dwarf.h
|
|
pkginclude_HEADERS = libdw.h known-dwarf.h
|
|
|
|
-libdw_a_SOURCES = dwarf_begin.c dwarf_begin_elf.c dwarf_end.c dwarf_getelf.c \
|
|
+libdw_la_SOURCES = dwarf_begin.c dwarf_begin_elf.c dwarf_end.c dwarf_getelf.c \
|
|
dwarf_getpubnames.c dwarf_getabbrev.c dwarf_tag.c \
|
|
dwarf_error.c dwarf_nextcu.c dwarf_diename.c dwarf_offdie.c \
|
|
dwarf_attr.c dwarf_formstring.c \
|
|
@@ -121,11 +119,8 @@ libdw.so: $(srcdir)/libdw.map $(libdw_so
|
|
@$(textrel_check)
|
|
$(AM_V_at)ln -fs $@ $@.$(VERSION)
|
|
|
|
-install: install-am libdw.so
|
|
+install: install-am
|
|
$(mkinstalldirs) $(DESTDIR)$(libdir)
|
|
- $(INSTALL_PROGRAM) libdw.so $(DESTDIR)$(libdir)/libdw-$(PACKAGE_VERSION).so
|
|
- ln -fs libdw-$(PACKAGE_VERSION).so $(DESTDIR)$(libdir)/libdw.so.$(VERSION)
|
|
- ln -fs libdw.so.$(VERSION) $(DESTDIR)$(libdir)/libdw.so
|
|
|
|
uninstall: uninstall-am
|
|
rm -f $(DESTDIR)$(libdir)/libdw-$(PACKAGE_VERSION).so
|
|
--- a/libasm/Makefile.am
|
|
+++ b/libasm/Makefile.am
|
|
@@ -32,12 +32,10 @@ AM_CPPFLAGS += -I$(top_srcdir)/libelf -I
|
|
|
|
VERSION = 1
|
|
|
|
-lib_LIBRARIES = libasm.a
|
|
-noinst_LIBRARIES = libasm_pic.a
|
|
-noinst_DATA = $(noinst_LIBRARIES:_pic.a=.so)
|
|
+lib_LTLIBRARIES = libasm.la
|
|
pkginclude_HEADERS = libasm.h
|
|
|
|
-libasm_a_SOURCES = asm_begin.c asm_abort.c asm_end.c asm_error.c \
|
|
+libasm_la_SOURCES = asm_begin.c asm_abort.c asm_end.c asm_error.c \
|
|
asm_getelf.c asm_newscn.c asm_newscn_ingrp.c \
|
|
asm_newsubscn.c asm_newsym.c asm_newcomsym.c \
|
|
asm_newabssym.c \
|
|
@@ -71,11 +69,8 @@ libasm.so: $(srcdir)/libasm.map $(libasm
|
|
@$(textrel_check)
|
|
$(AM_V_at)ln -fs $@ $@.$(VERSION)
|
|
|
|
-install: install-am libasm.so
|
|
+install: install-am
|
|
$(mkinstalldirs) $(DESTDIR)$(libdir)
|
|
- $(INSTALL_PROGRAM) libasm.so $(DESTDIR)$(libdir)/libasm-$(PACKAGE_VERSION).so
|
|
- ln -fs libasm-$(PACKAGE_VERSION).so $(DESTDIR)$(libdir)/libasm.so.$(VERSION)
|
|
- ln -fs libasm.so.$(VERSION) $(DESTDIR)$(libdir)/libasm.so
|
|
|
|
uninstall: uninstall-am
|
|
rm -f $(DESTDIR)$(libdir)/libasm-$(PACKAGE_VERSION).so
|
|
--- a/libdwfl/Makefile.am
|
|
+++ b/libdwfl/Makefile.am
|
|
@@ -34,12 +34,12 @@ AM_CPPFLAGS += -I$(srcdir) -I$(srcdir)/.
|
|
-I$(srcdir)/../libdw -I$(srcdir)/../libdwelf -I$(builddir)/../debuginfod
|
|
VERSION = 1
|
|
|
|
-noinst_LIBRARIES = libdwfl.a
|
|
-noinst_LIBRARIES += libdwfl_pic.a
|
|
+noinst_LTLIBRARIES = libdwfl.la
|
|
|
|
pkginclude_HEADERS = libdwfl.h
|
|
|
|
|
|
+libdwfl_la_SOURCES = $(libdwfl_a_SOURCES)
|
|
libdwfl_a_SOURCES = dwfl_begin.c dwfl_end.c dwfl_error.c dwfl_version.c \
|
|
dwfl_module.c dwfl_report_elf.c relocate.c \
|
|
dwfl_module_build_id.c dwfl_module_report_build_id.c \
|
|
--- a/backends/Makefile.am
|
|
+++ b/backends/Makefile.am
|
|
@@ -34,7 +34,7 @@ endif
|
|
AM_CPPFLAGS += -I$(top_srcdir)/libebl -I$(top_srcdir)/libasm \
|
|
-I$(top_srcdir)/libelf -I$(top_srcdir)/libdw
|
|
|
|
-noinst_LIBRARIES = libebl_backends.a libebl_backends_pic.a
|
|
+noinst_LTLIBRARIES = libebl_backends.la
|
|
|
|
modules = i386 sh x86_64 ia64 alpha arm aarch64 sparc ppc ppc64 s390 \
|
|
m68k bpf riscv csky loongarch arc mips
|
|
@@ -106,7 +106,7 @@ mips_SRCS = mips_init.c mips_symbol.c mi
|
|
mips_cfi.c mips_unwind.c mips_regs.c mips_retval.c \
|
|
mips_corenote.c mips64_corenote.c
|
|
|
|
-libebl_backends_a_SOURCES = $(i386_SRCS) $(sh_SRCS) $(x86_64_SRCS) \
|
|
+libebl_backends_la_SOURCES = $(i386_SRCS) $(sh_SRCS) $(x86_64_SRCS) \
|
|
$(ia64_SRCS) $(alpha_SRCS) $(arm_SRCS) \
|
|
$(aarch64_SRCS) $(sparc_SRCS) $(ppc_SRCS) \
|
|
$(ppc64_SRCS) $(s390_SRCS) \
|
|
--- a/libdwelf/Makefile.am
|
|
+++ b/libdwelf/Makefile.am
|
|
@@ -34,12 +34,12 @@ AM_CPPFLAGS += -I$(srcdir)/../libelf -I$
|
|
-I$(srcdir)/../libdwfl -I$(srcdir)/../libebl
|
|
VERSION = 1
|
|
|
|
-noinst_LIBRARIES = libdwelf.a libdwelf_pic.a
|
|
+noinst_LTLIBRARIES = libdwelf.la
|
|
|
|
pkginclude_HEADERS = libdwelf.h
|
|
noinst_HEADERS = libdwelfP.h
|
|
|
|
-libdwelf_a_SOURCES = dwelf_elf_gnu_debuglink.c dwelf_dwarf_gnu_debugaltlink.c \
|
|
+libdwelf_la_SOURCES = dwelf_elf_gnu_debuglink.c dwelf_dwarf_gnu_debugaltlink.c \
|
|
dwelf_elf_gnu_build_id.c dwelf_scn_gnu_compressed_size.c \
|
|
dwelf_strtab.c dwelf_elf_begin.c \
|
|
dwelf_elf_e_machine_string.c
|
|
--- a/libebl/Makefile.am
|
|
+++ b/libebl/Makefile.am
|
|
@@ -34,9 +34,9 @@ endif
|
|
AM_CPPFLAGS += -I$(srcdir)/../libelf -I$(srcdir)/../libdw -I$(srcdir)/../libasm
|
|
VERSION = 1
|
|
|
|
-noinst_LIBRARIES = libebl.a libebl_pic.a
|
|
+noinst_LTLIBRARIES = libebl.la
|
|
|
|
-libebl_a_SOURCES = eblopenbackend.c eblclosebackend.c eblreloctypename.c \
|
|
+libebl_la_SOURCES = eblopenbackend.c eblclosebackend.c eblreloctypename.c \
|
|
eblsegmenttypename.c eblsectiontypename.c \
|
|
eblmachineflagname.c eblsymboltypename.c \
|
|
ebldynamictagname.c eblsectionname.c \
|
|
--- a/debuginfod/Makefile.am
|
|
+++ b/debuginfod/Makefile.am
|
|
@@ -41,13 +41,13 @@ program_prefix=
|
|
program_transform_name = s,x,x,
|
|
|
|
if BUILD_STATIC
|
|
-libasm = ../libasm/libasm.a
|
|
-libdw = ../libdw/libdw.a -lz $(zip_LIBS) $(libelf) $(libebl) -ldl -lpthread
|
|
-libelf = ../libelf/libelf.a -lz
|
|
+libasm = ../libasm/libasm.la
|
|
+libdw = ../libdw/libdw.la -lz $(zip_LIBS) $(libelf) $(libebl) -ldl -lpthread
|
|
+libelf = ../libelf/libelf.la
|
|
if DUMMY_LIBDEBUGINFOD
|
|
-libdebuginfod = ./libdebuginfod.a
|
|
+libdebuginfod = ./libdebuginfod.la
|
|
else
|
|
-libdebuginfod = ./libdebuginfod.a -lpthread $(libcurl_LIBS)
|
|
+libdebuginfod = ./libdebuginfod.la -lpthread $(libcurl_LIBS)
|
|
endif
|
|
else
|
|
libasm = ../libasm/libasm.so
|
|
@@ -55,8 +55,8 @@ libdw = ../libdw/libdw.so
|
|
libelf = ../libelf/libelf.so
|
|
libdebuginfod = ./libdebuginfod.so
|
|
endif
|
|
-libebl = ../libebl/libebl.a
|
|
-libeu = ../lib/libeu.a
|
|
+libebl = ../libebl/libebl.la
|
|
+libeu = ../lib/libeu.la
|
|
|
|
AM_LDFLAGS = -Wl,-rpath-link,../libelf:../libdw:.
|
|
|
|
@@ -76,11 +76,10 @@ debuginfod_find_SOURCES = debuginfod-fin
|
|
debuginfod_find_LDADD = $(libdw) $(libelf) $(libeu) $(libdebuginfod) $(argp_LDADD) $(fts_LIBS)
|
|
|
|
if LIBDEBUGINFOD
|
|
-noinst_LIBRARIES = libdebuginfod.a
|
|
-noinst_LIBRARIES += libdebuginfod_pic.a
|
|
+noinst_LTLIBRARIES = libdebuginfod.la
|
|
endif
|
|
|
|
-libdebuginfod_a_SOURCES = debuginfod-client.c
|
|
+libdebuginfod_la_SOURCES = debuginfod-client.c
|
|
libdebuginfod_pic_a_SOURCES = debuginfod-client.c
|
|
am_libdebuginfod_pic_a_OBJECTS = $(libdebuginfod_a_SOURCES:.c=.os)
|
|
|
|
@@ -111,12 +110,8 @@ $(LIBDEBUGINFOD_SONAME): $(srcdir)/libde
|
|
libdebuginfod.so: $(LIBDEBUGINFOD_SONAME)
|
|
ln -fs $< $@
|
|
|
|
-install: install-am libdebuginfod.so
|
|
+install: install-am
|
|
$(mkinstalldirs) $(DESTDIR)$(libdir)
|
|
- $(INSTALL_PROGRAM) $(LIBDEBUGINFOD_SONAME) \
|
|
- $(DESTDIR)$(libdir)/libdebuginfod-$(PACKAGE_VERSION).so
|
|
- ln -fs libdebuginfod-$(PACKAGE_VERSION).so $(DESTDIR)$(libdir)/$(LIBDEBUGINFOD_SONAME)
|
|
- ln -fs libdebuginfod-$(PACKAGE_VERSION).so $(DESTDIR)$(libdir)/libdebuginfod.so
|
|
|
|
uninstall: uninstall-am
|
|
rm -f $(DESTDIR)$(libdir)/libdebuginfod-$(PACKAGE_VERSION).so
|
|
--- a/lib/Makefile.am
|
|
+++ b/lib/Makefile.am
|
|
@@ -31,9 +31,9 @@ include $(top_srcdir)/config/eu.am
|
|
AM_CFLAGS += $(fpic_CFLAGS)
|
|
AM_CPPFLAGS += -I$(srcdir)/../libelf
|
|
|
|
-noinst_LIBRARIES = libeu.a
|
|
+noinst_LTLIBRARIES = libeu.la
|
|
|
|
-libeu_a_SOURCES = xasprintf.c xstrdup.c xstrndup.c xmalloc.c next_prime.c \
|
|
+libeu_la_SOURCES = xasprintf.c xstrdup.c xstrndup.c xmalloc.c next_prime.c \
|
|
crc32.c crc32_file.c \
|
|
color.c error.c printversion.c
|
|
|
|
--- a/src/Makefile.am
|
|
+++ b/src/Makefile.am
|
|
@@ -29,9 +29,9 @@ bin_PROGRAMS = readelf nm size strip elf
|
|
elfcmp objdump ranlib strings ar unstrip stack elfcompress \
|
|
elfclassify srcfiles
|
|
|
|
-noinst_LIBRARIES = libar.a
|
|
+noinst_LTLIBRARIES = libar.la
|
|
|
|
-libar_a_SOURCES = arlib.c arlib2.c arlib-argp.c
|
|
+libar_la_SOURCES = arlib.c arlib2.c arlib-argp.c
|
|
|
|
EXTRA_DIST = arlib.h debugpred.h
|
|
|
|
@@ -40,11 +40,11 @@ EXTRA_DIST += make-debug-archive.in
|
|
CLEANFILES += make-debug-archive
|
|
|
|
if BUILD_STATIC
|
|
-libasm = ../libasm/libasm.a
|
|
-libdw = ../libdw/libdw.a -lz $(zip_LIBS) $(libelf) -ldl -lpthread
|
|
-libelf = ../libelf/libelf.a -lz $(zstd_LIBS)
|
|
+libasm = ../libasm/libasm.la
|
|
+libdw = ../libdw/libdw.la -lz $(zip_LIBS) $(libelf) -ldl -lpthread
|
|
+libelf = ../libelf/libelf.la -lz $(zstd_LIBS)
|
|
if LIBDEBUGINFOD
|
|
-libdebuginfod = ../debuginfod/libdebuginfod.a -lpthread $(libcurl_LIBS)
|
|
+libdebuginfod = ../debuginfod/libdebuginfod.la -lpthread $(libcurl_LIBS)
|
|
else
|
|
libdebuginfod =
|
|
endif
|
|
@@ -58,8 +58,8 @@ else
|
|
libdebuginfod =
|
|
endif
|
|
endif
|
|
-libebl = ../libebl/libebl.a ../backends/libebl_backends.a ../libcpu/libcpu.a
|
|
-libeu = ../lib/libeu.a
|
|
+libebl = ../libebl/libebl.la ../backends/libebl_backends.la ../libcpu/libcpu.la
|
|
+libeu = ../lib/libeu.la
|
|
|
|
if DEMANGLE
|
|
demanglelib = -lstdc++
|
|
@@ -87,9 +87,9 @@ findtextrel_LDADD = $(libdw) $(libelf) $
|
|
addr2line_LDADD = $(libdw) $(libelf) $(libeu) $(argp_LDADD) $(demanglelib)
|
|
elfcmp_LDADD = $(libebl) $(libdw) $(libelf) $(libeu) $(argp_LDADD)
|
|
objdump_LDADD = $(libasm) $(libebl) $(libdw) $(libelf) $(libeu) $(argp_LDADD)
|
|
-ranlib_LDADD = libar.a $(libelf) $(libeu) $(argp_LDADD) $(obstack_LIBS)
|
|
+ranlib_LDADD = libar.la $(libelf) $(libeu) $(argp_LDADD) $(obstack_LIBS)
|
|
strings_LDADD = $(libelf) $(libeu) $(argp_LDADD)
|
|
-ar_LDADD = libar.a $(libelf) $(libeu) $(argp_LDADD) $(obstack_LIBS)
|
|
+ar_LDADD = libar.la $(libelf) $(libeu) $(argp_LDADD) $(obstack_LIBS)
|
|
unstrip_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) $(argp_LDADD)
|
|
stack_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) $(argp_LDADD) $(demanglelib)
|
|
elfcompress_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) $(argp_LDADD)
|
|
--- a/tests/Makefile.am
|
|
+++ b/tests/Makefile.am
|
|
@@ -50,7 +50,7 @@ check_PROGRAMS = arextract arsymtest new
|
|
dwfl-report-offline-memory \
|
|
varlocs backtrace backtrace-child \
|
|
backtrace-data backtrace-dwarf debuglink debugaltlink \
|
|
- buildid deleted deleted-lib.so aggregate_size peel_type \
|
|
+ buildid aggregate_size peel_type \
|
|
vdsosyms \
|
|
getsrc_die strptr newdata elfstrtab dwfl-proc-attach \
|
|
elfshphehdr elfstrmerge dwelfgnucompressed elfgetchdr \
|
|
@@ -103,7 +103,7 @@ endif
|
|
test-nlist$(EXEEXT): test-nlist.c
|
|
$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
|
|
$(AM_CPPFLAGS) $(CPPFLAGS) \
|
|
- $(test_nlist_CFLAGS) $(GCOV_FLAGS) -o $@ $< $(test_nlist_LDADD)
|
|
+ $(test_nlist_CFLAGS) $(GCOV_FLAGS) -o $@ $< ../libelf/.libs/libelf.a -lz $(zstd_LIBS)
|
|
|
|
TESTS = run-arextract.sh run-arsymtest.sh run-ar.sh newfile test-nlist \
|
|
run-ar-N.sh \
|
|
@@ -180,7 +180,7 @@ TESTS = run-arextract.sh run-arsymtest.s
|
|
run-readelf-addr.sh run-readelf-str.sh \
|
|
run-readelf-multi-noline.sh \
|
|
run-readelf-types.sh \
|
|
- run-readelf-dwz-multi.sh run-allfcts-multi.sh run-deleted.sh \
|
|
+ run-readelf-dwz-multi.sh run-allfcts-multi.sh \
|
|
run-linkmap-cut.sh run-aggregate-size.sh run-peel-type.sh \
|
|
vdsosyms run-readelf-A.sh \
|
|
run-getsrc-die.sh run-strptr.sh newdata elfstrtab dwfl-proc-attach \
|
|
@@ -691,16 +691,16 @@ installcheck-local:
|
|
LOG_COMPILER="$(installed_LOG_COMPILER)" check-TESTS
|
|
|
|
if BUILD_STATIC
|
|
-libdw = ../libdw/libdw.a -lz $(zip_LIBS) $(libelf) $(libebl) -ldl -lpthread
|
|
-libelf = ../libelf/libelf.a -lz $(zstd_LIBS)
|
|
-libasm = ../libasm/libasm.a
|
|
+libdw = ../libdw/libdw.la -lz $(zip_LIBS) $(libelf) $(libebl) -ldl -lpthread
|
|
+libelf = ../libelf/libelf.la -lz $(zstd_LIBS)
|
|
+libasm = ../libasm/libasm.la
|
|
else
|
|
libdw = ../libdw/libdw.so
|
|
libelf = ../libelf/libelf.so
|
|
libasm = ../libasm/libasm.so
|
|
endif
|
|
-libebl = ../libebl/libebl.a ../backends/libebl_backends.a ../libcpu/libcpu.a
|
|
-libeu = ../lib/libeu.a
|
|
+libebl = ../libebl/libebl.la ../backends/libebl_backends.la ../libcpu/libcpu.la
|
|
+libeu = ../lib/libeu.la
|
|
|
|
arextract_LDADD = $(libelf)
|
|
arsymtest_LDADD = $(libelf)
|
|
--- a/libcpu/Makefile.am
|
|
+++ b/libcpu/Makefile.am
|
|
@@ -38,19 +38,19 @@ LEXCOMPILE = $(LEX) $(LFLAGS) $(AM_LFLAG
|
|
LEX_OUTPUT_ROOT = lex.$(<F:lex.l=)
|
|
AM_YFLAGS = -p$(<F:parse.y=)
|
|
|
|
-noinst_LIBRARIES = libcpu.a libcpu_pic.a
|
|
+noinst_LTLIBRARIES = libcpu.la
|
|
|
|
noinst_HEADERS = i386_dis.h i386_mne.h x86_64_dis.h
|
|
|
|
-libcpu_a_SOURCES = i386_disasm.c x86_64_disasm.c bpf_disasm.c riscv_disasm.c
|
|
+libcpu_la_SOURCES = i386_disasm.c x86_64_disasm.c bpf_disasm.c riscv_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
|
|
|
|
-i386_disasm.o: i386.mnemonics $(srcdir)/i386_dis.h
|
|
-x86_64_disasm.o: x86_64.mnemonics $(srcdir)/x86_64_dis.h
|
|
+i386_disasm.lo: i386.mnemonics $(srcdir)/i386_dis.h
|
|
+x86_64_disasm.lo: x86_64.mnemonics $(srcdir)/x86_64_dis.h
|
|
|
|
%_defs: $(srcdir)/defs/i386
|
|
$(AM_V_GEN)m4 -D$* -DDISASSEMBLER $< > $@T
|
|
@@ -87,7 +87,7 @@ endif
|
|
|
|
i386_lex_no_Werror = yes
|
|
|
|
-libeu = ../lib/libeu.a
|
|
+libeu = ../lib/libeu.la
|
|
|
|
i386_lex_CFLAGS = -Wno-unused-label -Wno-unused-function -Wno-sign-compare \
|
|
-Wno-implicit-fallthrough
|
|
--- a/config/libelf.pc.in
|
|
+++ b/config/libelf.pc.in
|
|
@@ -8,7 +8,7 @@ Description: elfutils libelf library to
|
|
Version: @VERSION@
|
|
URL: http://elfutils.org/
|
|
|
|
-Libs: -L${libdir} -lelf
|
|
+Libs: -L${libdir} -lelf -lz
|
|
Cflags: -I${includedir}
|
|
|
|
Requires.private: zlib @LIBZSTD@
|
|
--- a/lib/next_prime.c
|
|
+++ b/lib/next_prime.c
|
|
@@ -27,6 +27,7 @@
|
|
the GNU Lesser General Public License along with this program. If
|
|
not, see <http://www.gnu.org/licenses/>. */
|
|
|
|
+#include <config.h>
|
|
#include <stddef.h>
|
|
|
|
|
|
--- a/libebl/eblopenbackend.c
|
|
+++ b/libebl/eblopenbackend.c
|
|
@@ -200,8 +200,6 @@ static bool default_object_note (const c
|
|
uint32_t descsz, const char *desc);
|
|
static bool default_debugscn_p (const char *name);
|
|
static bool default_copy_reloc_p (int reloc);
|
|
-static bool default_none_reloc_p (int reloc);
|
|
-static bool default_relative_reloc_p (int reloc);
|
|
static bool default_check_special_symbol (Elf *elf,
|
|
const GElf_Sym *sym,
|
|
const char *name,
|
|
@@ -253,8 +251,8 @@ fill_defaults (Ebl *result)
|
|
result->object_note = default_object_note;
|
|
result->debugscn_p = default_debugscn_p;
|
|
result->copy_reloc_p = default_copy_reloc_p;
|
|
- result->none_reloc_p = default_none_reloc_p;
|
|
- result->relative_reloc_p = default_relative_reloc_p;
|
|
+ result->none_reloc_p = default_copy_reloc_p;
|
|
+ result->relative_reloc_p = default_copy_reloc_p;
|
|
result->check_special_symbol = default_check_special_symbol;
|
|
result->data_marker_symbol = default_data_marker_symbol;
|
|
result->check_st_other_bits = default_check_st_other_bits;
|
|
@@ -636,8 +634,6 @@ default_copy_reloc_p (int reloc __attrib
|
|
{
|
|
return false;
|
|
}
|
|
-strong_alias (default_copy_reloc_p, default_none_reloc_p)
|
|
-strong_alias (default_copy_reloc_p, default_relative_reloc_p)
|
|
|
|
static bool
|
|
default_check_special_symbol (Elf *elf __attribute__ ((unused)),
|
|
--- a/src/srcfiles.cxx
|
|
+++ b/src/srcfiles.cxx
|
|
@@ -78,7 +78,9 @@ ARGP_PROGRAM_VERSION_HOOK_DEF = print_ve
|
|
/* Bug report address. */
|
|
ARGP_PROGRAM_BUG_ADDRESS_DEF = PACKAGE_BUGREPORT;
|
|
|
|
+#ifdef HAVE_LIBARCHIVE
|
|
constexpr size_t BUFFER_SIZE = 8192;
|
|
+#endif
|
|
|
|
/* Definitions of arguments for argp functions. */
|
|
static const struct argp_option options[] =
|