summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorConrad Meyer <cem@FreeBSD.org>2016-07-14 18:45:54 +0000
committerConrad Meyer <cem@FreeBSD.org>2016-07-14 18:45:54 +0000
commit718a7c599f321669803ffa7d58eaae751e56be1e (patch)
treef5dae1b0db0f5be1eb401f3a29871e1b148c9e65
parentastro/qmapshack: Update version 1.6.1=>1.6.3 (diff)
elfutils-0.163_4
- Correct gnulib dependency to PATCH_DEPENDS, per Bapt. - Rely on USE_AUTOTOOLS :env to pull in automake for BUILD. - Move re-automake rule to pre-configure, when the tool is available. - Adapt installed gelf.h header to define needed non-standard Elf types as needed, rather than trying to add them to base elf headers. Reviewed by: portlint Sponsored by: EMC / Isilon Storage Division
Notes
Notes: svn path=/head/; revision=418553
-rw-r--r--devel/elfutils/Makefile17
-rw-r--r--devel/elfutils/files/patch-libelf_elf.h18
-rw-r--r--devel/elfutils/files/patch-libelf_gelf.h33
3 files changed, 57 insertions, 11 deletions
diff --git a/devel/elfutils/Makefile b/devel/elfutils/Makefile
index c0cf5fab5e06..263ff61392bd 100644
--- a/devel/elfutils/Makefile
+++ b/devel/elfutils/Makefile
@@ -3,7 +3,7 @@
PORTNAME= elfutils
PORTVERSION= 0.163
-PORTREVISION= 3
+PORTREVISION= 4
CATEGORIES= devel
MASTER_SITES= https://fedorahosted.org/releases/e/l/elfutils/$(PORTVERSION)/
@@ -16,8 +16,7 @@ LICENSE_FILE_GPLv3= ${WRKSRC}/COPYING
LICENSE_FILE_GPLv2= ${WRKSRC}/COPYING-GPLV2
LICENSE_FILE_LGPL3= ${WRKSRC}/COPYING-LGPLV3
-BUILD_DEPENDS= gnulib>=0:devel/gnulib \
- automake>=0:devel/automake
+PATCH_DEPENDS= gnulib>=0:devel/gnulib
OPTIONS_DEFINE= NLS
OPTIONS_SUB= yes
@@ -26,7 +25,7 @@ NLS_USES= gettext
NLS_CONFIGURE_ENABLE= nls
USES= gmake libtool tar:bzip2
-USE_AUTOTOOLS= automake
+USE_AUTOTOOLS= automake:env
USE_GCC= 4.9+
GNU_CONFIGURE= yes
@@ -34,17 +33,13 @@ GNU_CONFIGURE= yes
CONFIGURE_ARGS+= --program-prefix=eu-
post-patch:
- @cd $(WRKSRC) && ${AUTOMAKE}
@${CP} -a \
$(LOCALBASE)/share/gnulib/lib/obstack.c \
$(LOCALBASE)/share/gnulib/lib/obstack.h \
$(LOCALBASE)/share/gnulib/lib/obstack_printf.c \
$(WRKSRC)/lib
-.include <bsd.port.pre.mk>
-
-.if ${OSVERSION} < 1200002
-IGNORE= requires CURRENT elf header changes
-.endif
+pre-configure:
+ @cd $(WRKSRC) && ${AUTOMAKE}
-.include <bsd.port.post.mk>
+.include <bsd.port.mk>
diff --git a/devel/elfutils/files/patch-libelf_elf.h b/devel/elfutils/files/patch-libelf_elf.h
new file mode 100644
index 000000000000..4e6558aaea5e
--- /dev/null
+++ b/devel/elfutils/files/patch-libelf_elf.h
@@ -0,0 +1,18 @@
+--- libelf/elf.h.orig 2015-06-10 19:44:33 UTC
++++ libelf/elf.h
+@@ -54,6 +54,7 @@ typedef uint64_t Elf64_Off;
+ /* Type for section indices, which are 16-bit quantities. */
+ typedef uint16_t Elf32_Section;
+ typedef uint16_t Elf64_Section;
++#define LIBELF_ELF_SECTION_DEFINED 1
+
+ /* Type for version symbol information. */
+ typedef Elf32_Half Elf32_Versym;
+@@ -972,6 +973,7 @@ typedef struct
+ on 64-bit platforms and vice versa. */
+ } a_un;
+ } Elf64_auxv_t;
++#define LIBELF_ELF_AUXV_T_DEFINED 1
+
+ /* Legal values for a_type (entry type). */
+
diff --git a/devel/elfutils/files/patch-libelf_gelf.h b/devel/elfutils/files/patch-libelf_gelf.h
new file mode 100644
index 000000000000..4feb3add8962
--- /dev/null
+++ b/devel/elfutils/files/patch-libelf_gelf.h
@@ -0,0 +1,33 @@
+--- libelf/gelf.h.orig 2014-02-05 00:21:44 UTC
++++ libelf/gelf.h
+@@ -65,6 +65,10 @@ typedef Elf64_Ehdr GElf_Ehdr;
+ typedef Elf64_Shdr GElf_Shdr;
+
+ /* Section index. */
++#ifndef LIBELF_ELF_SECTION_DEFINED
++/* Type for section indices, which are 16-bit quantities. */
++typedef uint16_t Elf64_Section;
++#endif
+ /* XXX This should probably be a larger type in preparation of times when
+ regular section indices can be larger. */
+ typedef Elf64_Section GElf_Section;
+@@ -107,6 +111,19 @@ typedef Elf64_Versym GElf_Versym;
+
+
+ /* Auxiliary vector. */
++#ifndef LIBELF_ELF_AUXV_T_DEFINED
++typedef struct
++{
++ uint64_t a_type; /* Entry type */
++ union
++ {
++ uint64_t a_val; /* Integer value */
++ /* We use to have pointer elements added here. We cannot do that,
++ though, since it does not work when using 32-bit definitions
++ on 64-bit platforms and vice versa. */
++ } a_un;
++} Elf64_auxv_t;
++#endif
+ typedef Elf64_auxv_t GElf_auxv_t;
+
+