summaryrefslogtreecommitdiffstats
path: root/Android.mk
diff options
context:
space:
mode:
authorBen Cheng <bccheng@google.com>2012-03-07 23:04:02 -0800
committerBen Cheng <bccheng@google.com>2012-03-08 17:00:54 -0800
commitcc6695e2684ce93cdf8bd2da63d55d2cf49ff076 (patch)
tree58f9941f89a1bde4e068610a507f86c6cb02eadf /Android.mk
parent669e96ff41a1b72aa034a26563d90b4768d51482 (diff)
downloadandroid_external_elfutils-cc6695e2684ce93cdf8bd2da63d55d2cf49ff076.tar.gz
android_external_elfutils-cc6695e2684ce93cdf8bd2da63d55d2cf49ff076.tar.bz2
android_external_elfutils-cc6695e2684ce93cdf8bd2da63d55d2cf49ff076.zip
Upgrade elfutils from version 0.97 to 0.138
This upgrade is in preparation for adding perf to the Android tree, where perf needs newer version of elfutils. This particular snapshot also cleans up the current makefile where only the host version of libelf.a (needed by elftree). Additional build targets for libebl.a, libebl_arm.a, and libebl_sh.a are eliminated since they are not used in the tree at all. Changes that build other target modules and associated modifications to work with bionic will be added later. Change-Id: Ifa808ba5ad2881ccb2c0cf44d134931faad801e1
Diffstat (limited to 'Android.mk')
-rwxr-xr-xAndroid.mk382
1 files changed, 132 insertions, 250 deletions
diff --git a/Android.mk b/Android.mk
index 803db302..3a885fdc 100755
--- a/Android.mk
+++ b/Android.mk
@@ -1,265 +1,147 @@
-LOCAL_PATH:= $(call my-dir)
+LOCAL_PATH := $(call my-dir)
-COMMON_SOURCES:=\
- lib/xmalloc.c \
- lib/xstrdup.c \
- lib/xstrndup.c
+supported_platforms := linux-x86 darwin-x86
+cur_platform := $(filter $(HOST_OS)-$(HOST_ARCH),$(supported_platforms))
+ifdef cur_platform
#
-# libelf
+# host libelf
#
include $(CLEAR_VARS)
-LOCAL_SRC_FILES:=$(COMMON_SOURCES)
-LOCAL_SRC_FILES+=\
- libelf/elf32_checksum.c \
- libelf/elf32_fsize.c \
- libelf/elf32_getehdr.c \
- libelf/elf32_getphdr.c \
- libelf/elf32_getshdr.c \
- libelf/elf32_newehdr.c \
- libelf/elf32_newphdr.c \
- libelf/elf32_updatefile.c \
- libelf/elf32_updatenull.c \
- libelf/elf32_xlatetof.c \
- libelf/elf32_xlatetom.c \
- libelf/elf64_checksum.c \
- libelf/elf64_fsize.c \
- libelf/elf64_getehdr.c \
- libelf/elf64_getphdr.c \
- libelf/elf64_getshdr.c \
- libelf/elf64_newehdr.c \
- libelf/elf64_newphdr.c \
- libelf/elf64_updatefile.c \
- libelf/elf64_updatenull.c \
- libelf/elf64_xlatetof.c \
- libelf/elf64_xlatetom.c \
- libelf/elf_begin.c \
- libelf/elf_clone.c \
- libelf/elf_cntl.c \
- libelf/elf_end.c \
- libelf/elf_error.c \
- libelf/elf_fill.c \
- libelf/elf_flagdata.c \
- libelf/elf_flagehdr.c \
- libelf/elf_flagelf.c \
- libelf/elf_flagphdr.c \
- libelf/elf_flagscn.c \
- libelf/elf_flagshdr.c \
- libelf/elf_getarhdr.c \
- libelf/elf_getarsym.c \
- libelf/elf_getbase.c \
- libelf/elf_getdata.c \
- libelf/elf_getident.c \
- libelf/elf_getscn.c \
- libelf/elf_getshnum.c \
- libelf/elf_getshstrndx.c \
- libelf/elf_hash.c \
- libelf/elf_kind.c \
- libelf/elf_memory.c \
- libelf/elf_ndxscn.c \
- libelf/elf_newdata.c \
- libelf/elf_newscn.c \
- libelf/elf_next.c \
- libelf/elf_nextscn.c \
- libelf/elf_rand.c \
- libelf/elf_rawdata.c \
- libelf/elf_rawfile.c \
- libelf/elf_readall.c \
- libelf/elf_strptr.c \
- libelf/elf_update.c \
- libelf/elf_version.c \
- libelf/gelf_checksum.c \
- libelf/gelf_freechunk.c \
- libelf/gelf_fsize.c \
- libelf/gelf_getclass.c \
- libelf/gelf_getdyn.c \
- libelf/gelf_getehdr.c \
- libelf/gelf_getlib.c \
- libelf/gelf_getmove.c \
- libelf/gelf_getphdr.c \
- libelf/gelf_getrel.c \
- libelf/gelf_getrela.c \
- libelf/gelf_getshdr.c \
- libelf/gelf_getsym.c \
- libelf/gelf_getsyminfo.c \
- libelf/gelf_getsymshndx.c \
- libelf/gelf_getverdaux.c \
- libelf/gelf_getverdef.c \
- libelf/gelf_getvernaux.c \
- libelf/gelf_getverneed.c \
- libelf/gelf_getversym.c \
- libelf/gelf_newehdr.c \
- libelf/gelf_newphdr.c \
- libelf/gelf_rawchunk.c \
- libelf/gelf_update_dyn.c \
- libelf/gelf_update_ehdr.c \
- libelf/gelf_update_lib.c \
- libelf/gelf_update_move.c \
- libelf/gelf_update_phdr.c \
- libelf/gelf_update_rel.c \
- libelf/gelf_update_rela.c \
- libelf/gelf_update_shdr.c \
- libelf/gelf_update_sym.c \
- libelf/gelf_update_syminfo.c \
- libelf/gelf_update_symshndx.c \
- libelf/gelf_update_verdaux.c \
- libelf/gelf_update_verdef.c \
- libelf/gelf_update_vernaux.c \
- libelf/gelf_update_verneed.c \
- libelf/gelf_update_versym.c \
- libelf/gelf_xlate.c \
- libelf/gelf_xlatetof.c \
- libelf/gelf_xlatetom.c \
- libelf/libelf_crc32.c \
- libelf/libelf_next_prime.c \
- libelf/nlist.c
+LIBELF_SRC_FILES := \
+ libelf/elf32_checksum.c \
+ libelf/elf32_fsize.c \
+ libelf/elf32_getehdr.c \
+ libelf/elf32_getphdr.c \
+ libelf/elf32_getshdr.c \
+ libelf/elf32_newehdr.c \
+ libelf/elf32_newphdr.c \
+ libelf/elf32_offscn.c \
+ libelf/elf32_updatefile.c \
+ libelf/elf32_updatenull.c \
+ libelf/elf32_xlatetof.c \
+ libelf/elf32_xlatetom.c \
+ libelf/elf64_checksum.c \
+ libelf/elf64_fsize.c \
+ libelf/elf64_getehdr.c \
+ libelf/elf64_getphdr.c \
+ libelf/elf64_getshdr.c \
+ libelf/elf64_newehdr.c \
+ libelf/elf64_newphdr.c \
+ libelf/elf64_offscn.c \
+ libelf/elf64_updatefile.c \
+ libelf/elf64_updatenull.c \
+ libelf/elf64_xlatetof.c \
+ libelf/elf64_xlatetom.c \
+ libelf/elf_begin.c \
+ libelf/elf_clone.c \
+ libelf/elf_cntl.c \
+ libelf/elf_end.c \
+ libelf/elf_error.c \
+ libelf/elf_fill.c \
+ libelf/elf_flagdata.c \
+ libelf/elf_flagehdr.c \
+ libelf/elf_flagelf.c \
+ libelf/elf_flagphdr.c \
+ libelf/elf_flagscn.c \
+ libelf/elf_flagshdr.c \
+ libelf/elf_getarhdr.c \
+ libelf/elf_getaroff.c \
+ libelf/elf_getarsym.c \
+ libelf/elf_getbase.c \
+ libelf/elf_getdata.c \
+ libelf/elf_getdata_rawchunk.c \
+ libelf/elf_getident.c \
+ libelf/elf_getscn.c \
+ libelf/elf_getshnum.c \
+ libelf/elf_getshstrndx.c \
+ libelf/elf_gnu_hash.c \
+ libelf/elf_hash.c \
+ libelf/elf_kind.c \
+ libelf/elf_memory.c \
+ libelf/elf_ndxscn.c \
+ libelf/elf_newdata.c \
+ libelf/elf_newscn.c \
+ libelf/elf_next.c \
+ libelf/elf_nextscn.c \
+ libelf/elf_rand.c \
+ libelf/elf_rawdata.c \
+ libelf/elf_rawfile.c \
+ libelf/elf_readall.c \
+ libelf/elf_scnshndx.c \
+ libelf/elf_strptr.c \
+ libelf/elf_update.c \
+ libelf/elf_version.c \
+ libelf/gelf_checksum.c \
+ libelf/gelf_fsize.c \
+ libelf/gelf_getauxv.c \
+ libelf/gelf_getclass.c \
+ libelf/gelf_getdyn.c \
+ libelf/gelf_getehdr.c \
+ libelf/gelf_getlib.c \
+ libelf/gelf_getmove.c \
+ libelf/gelf_getnote.c \
+ libelf/gelf_getphdr.c \
+ libelf/gelf_getrela.c \
+ libelf/gelf_getrel.c \
+ libelf/gelf_getshdr.c \
+ libelf/gelf_getsym.c \
+ libelf/gelf_getsyminfo.c \
+ libelf/gelf_getsymshndx.c \
+ libelf/gelf_getverdaux.c \
+ libelf/gelf_getverdef.c \
+ libelf/gelf_getvernaux.c \
+ libelf/gelf_getverneed.c \
+ libelf/gelf_getversym.c \
+ libelf/gelf_newehdr.c \
+ libelf/gelf_newphdr.c \
+ libelf/gelf_offscn.c \
+ libelf/gelf_update_auxv.c \
+ libelf/gelf_update_dyn.c \
+ libelf/gelf_update_ehdr.c \
+ libelf/gelf_update_lib.c \
+ libelf/gelf_update_move.c \
+ libelf/gelf_update_phdr.c \
+ libelf/gelf_update_rela.c \
+ libelf/gelf_update_rel.c \
+ libelf/gelf_update_shdr.c \
+ libelf/gelf_update_sym.c \
+ libelf/gelf_update_syminfo.c \
+ libelf/gelf_update_symshndx.c \
+ libelf/gelf_update_verdaux.c \
+ libelf/gelf_update_verdef.c \
+ libelf/gelf_update_vernaux.c \
+ libelf/gelf_update_verneed.c \
+ libelf/gelf_update_versym.c \
+ libelf/gelf_xlate.c \
+ libelf/gelf_xlatetof.c \
+ libelf/gelf_xlatetom.c \
+ libelf/libelf_crc32.c \
+ libelf/libelf_next_prime.c \
+ libelf/nlist.c
+
+LOCAL_SRC_FILES := $(LIBELF_SRC_FILES)
+
+LOCAL_C_INCLUDES := $(LOCAL_PATH)/lib $(LOCAL_PATH)/libelf
+
+LOCAL_C_INCLUDES += $(LOCAL_PATH)/host-$(HOST_OS)-fixup
+
+LOCAL_CFLAGS += -DHAVE_CONFIG_H -std=gnu99 -D_GNU_SOURCE
+
+# to suppress the "pointer of type ‘void *’ used in arithmetic" warning
+LOCAL_CFLAGS += -Wno-pointer-arith
-ifeq ($(HOST_OS),linux)
-LOCAL_CFLAGS +=-include $(LOCAL_PATH)/config-compat-linux.h
-endif
-ifeq ($(HOST_OS),darwin)
-LOCAL_CFLAGS +=-include $(LOCAL_PATH)/config-compat-darwin.h
-endif
-ifeq ($(HOST_OS),windows)
-LOCAL_CFLAGS +=-include $(LOCAL_PATH)/config-compat-cygwin.h
-endif
-ifeq ($(HOST_OS),freebsd)
-LOCAL_CFLAGS +=-include $(LOCAL_PATH)/config-compat-freebsd.h
-endif
-
-LOCAL_MODULE:= libelf
-
-LOCAL_CFLAGS += -include $(LOCAL_PATH)/config.h
-ifeq ($(HOST_OS),windows)
-LOCAL_CFLAGS += -Doff64_t=_off64_t
-else
-LOCAL_CFLAGS += -Doff64_t=__off64_t
-endif
-
-LOCAL_C_INCLUDES:=$(LOCAL_PATH)/lib/ $(LOCAL_PATH)/libelf/
-
-include $(BUILD_HOST_STATIC_LIBRARY)
-
-#
-# libebl
-#
-
-include $(CLEAR_VARS)
-
-LOCAL_SRC_FILES:=$(COMMON_SOURCES)
-LOCAL_SRC_FILES+=\
- libebl/eblbackendname.c \
- libebl/eblclosebackend.c \
- libebl/eblcorenote.c \
- libebl/eblcorenotetypename.c \
- libebl/ebldebugscnp.c \
- libebl/ebldynamictagcheck.c \
- libebl/ebldynamictagname.c \
- libebl/eblgotpcreloccheck.c \
- libebl/eblgstrtab.c \
- libebl/eblmachineflagcheck.c \
- libebl/eblmachineflagname.c \
- libebl/eblobjecttypename.c \
- libebl/eblobjnote.c \
- libebl/eblobjnotetypename.c \
- libebl/eblopenbackend.c \
- libebl/eblosabiname.c \
- libebl/eblreloctypecheck.c \
- libebl/eblreloctypename.c \
- libebl/eblrelocvaliduse.c \
- libebl/eblsectionname.c \
- libebl/eblsectiontypename.c \
- libebl/eblsegmenttypename.c \
- libebl/eblshflagscombine.c \
- libebl/eblstrtab.c \
- libebl/eblsymbolbindingname.c \
- libebl/eblsymboltypename.c \
- libebl/eblwstrtab.c
-
-ifeq ($(HOST_OS),linux)
-LOCAL_CFLAGS +=-include $(LOCAL_PATH)/config-compat-linux.h
-endif
ifeq ($(HOST_OS),darwin)
-LOCAL_CFLAGS +=-include $(LOCAL_PATH)/config-compat-darwin.h
-endif
-ifeq ($(HOST_OS),windows)
-LOCAL_CFLAGS +=-include $(LOCAL_PATH)/config-compat-cygwin.h
-endif
-ifeq ($(HOST_OS),freebsd)
-LOCAL_CFLAGS +=-include $(LOCAL_PATH)/config-compat-freebsd.h
+ LOCAL_CFLAGS += -fnested-functions
endif
-LOCAL_MODULE:=libebl
+# to fix machine-dependent issues
+LOCAL_CFLAGS += -include $(LOCAL_PATH)/host-$(HOST_OS)-fixup/AndroidFixup.h
-LOCAL_CFLAGS += -include $(LOCAL_PATH)/config.h -DLIBSTR=\"$(LOCAL_MODULE)\" -Dstpcpy=strcpy
-ifeq ($(HOST_OS),windows)
-LOCAL_CFLAGS += -Doff64_t=_off64_t
-else
-LOCAL_CFLAGS += -Doff64_t=__off64_t
-endif
-
-LOCAL_C_INCLUDES:=$(LOCAL_PATH)/lib/ $(LOCAL_PATH)/libelf/ $(LOCAL_PATH)/libebl/
+LOCAL_MODULE := libelf
include $(BUILD_HOST_STATIC_LIBRARY)
-#
-# libebl_arm
-#
-
-include $(CLEAR_VARS)
-
-#LOCAL_SRC_FILES:=$(COMMON_SOURCES)
-LOCAL_SRC_FILES+=\
- libebl/arm_destr.c \
- libebl/arm_init.c \
- libebl/arm_symbol.c
-
-ifeq ($(HOST_OS),linux)
-endif
-ifeq ($(HOST_OS),darwin)
-endif
-
-LOCAL_MODULE:=libebl_arm
-
-LOCAL_CFLAGS += -include $(LOCAL_PATH)/config.h
-ifeq ($(HOST_OS),windows)
-LOCAL_CFLAGS += -Doff64_t=_off64_t
-else
-LOCAL_CFLAGS += -Doff64_t=__off64_t
-endif
-
-LOCAL_C_INCLUDES:=$(LOCAL_PATH)/lib/ $(LOCAL_PATH)/libelf/ $(LOCAL_PATH)/libebl/
-
-include $(BUILD_HOST_STATIC_LIBRARY)
-
-
-#
-# libebl_sh
-#
-
-include $(CLEAR_VARS)
-
-LOCAL_SRC_FILES+=\
- libebl/sh_destr.c \
- libebl/sh_init.c \
- libebl/sh_symbol.c
-
-ifeq ($(HOST_OS),linux)
-endif
-ifeq ($(HOST_OS),darwin)
-endif
-
-LOCAL_MODULE:=libebl_sh
-
-LOCAL_CFLAGS += -include $(LOCAL_PATH)/config.h
-ifeq ($(HOST_OS),windows)
-LOCAL_CFLAGS += -Doff64_t=_off64_t
-else
-LOCAL_CFLAGS += -Doff64_t=__off64_t
-endif
-
-LOCAL_C_INCLUDES:=$(LOCAL_PATH)/lib/ $(LOCAL_PATH)/libelf/ $(LOCAL_PATH)/libebl/
-
-include $(BUILD_HOST_STATIC_LIBRARY)
+endif #cur_platform