ports/85120: Update port: devel/libelf to 0.8.6
Vasil Dimov
vd at datamax.bg
Fri Aug 19 14:20:09 UTC 2005
>Number: 85120
>Category: ports
>Synopsis: Update port: devel/libelf to 0.8.6
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: update
>Submitter-Id: current-users
>Arrival-Date: Fri Aug 19 14:20:07 GMT 2005
>Closed-Date:
>Last-Modified:
>Originator: Vasil Dimov
>Release: FreeBSD 5.4-STABLE i386
>Organization:
DataMax
>Environment:
>Description:
Update libelf from 0.8.5 to 0.8.6
* swap www.mr511.de and ${MASTER_SITE_SUNSITE} as the archive has not
yet appeared on ${MASTER_SITE_SUNSITE} - save "Not found" cycles
* change nonexistent (in FreeBSD) types Elf64_Xword and Elf64_Sxword
used in source with the equivalent ones: Elf64_Word and Elf64_Sword
I have also attached a separate patch for each file, but the sed
command in Makefile is easier for maintenance IMHO.
* introduce files/patch-Makefile.in to force libelf.pc to go in the
right place
* sync files/patch-configure and pkg-plist
>How-To-Repeat:
>Fix:
--- libelf_0.8.5-0.8.6.diff begins here ---
diff -urN --exclude=CVS libelf.orig/Makefile libelf/Makefile
--- libelf.orig/Makefile Mon May 9 12:52:34 2005
+++ libelf/Makefile Fri Aug 19 16:38:23 2005
@@ -6,11 +6,10 @@
#
PORTNAME= libelf
-PORTVERSION= 0.8.5
-PORTREVISION= 1
+PORTVERSION= 0.8.6
CATEGORIES= devel
-MASTER_SITES= ${MASTER_SITE_SUNSITE} \
- http://www.mr511.de/software/
+MASTER_SITES= http://www.mr511.de/software/ \
+ ${MASTER_SITE_SUNSITE}
MASTER_SITE_SUBDIR= libs .
MAINTAINER= roam at FreeBSD.org
@@ -25,5 +24,15 @@
USE_GETTEXT= yes
NOMAN= defined
+
+USE_REINPLACE= yes
+
+FILES_TO_PATCH=lib/32.fsize.c lib/64.xlatetof.c lib/cook.c lib/gelf.h lib/gelftrans.c
+
+post-patch:
+ @(cd ${WRKSRC} && ${REINPLACE_CMD} \
+ -e 's/Elf64_Xword/Elf64_Word/g' \
+ -e 's/Elf64_Sxword/Elf64_Sword/g' \
+ ${FILES_TO_PATCH})
.include <bsd.port.mk>
diff -urN --exclude=CVS libelf.orig/distinfo libelf/distinfo
--- libelf.orig/distinfo Wed Mar 31 06:07:00 2004
+++ libelf/distinfo Fri Aug 19 15:53:48 2005
@@ -1,2 +1,2 @@
-MD5 (libelf-0.8.5.tar.gz) = c1daf069367871350ece779b7de20047
-SIZE (libelf-0.8.5.tar.gz) = 132111
+MD5 (libelf-0.8.6.tar.gz) = d444fb0068cdfed01bb1fd1e91d29270
+SIZE (libelf-0.8.6.tar.gz) = 144198
diff -urN --exclude=CVS libelf.orig/files/patch-Makefile.in libelf/files/patch-Makefile.in
--- libelf.orig/files/patch-Makefile.in Thu Jan 1 02:00:00 1970
+++ libelf/files/patch-Makefile.in Fri Aug 19 16:52:34 2005
@@ -0,0 +1,11 @@
+--- Makefile.in.orig Fri Aug 19 16:51:51 2005
++++ Makefile.in Fri Aug 19 16:52:13 2005
+@@ -23,7 +23,7 @@
+ exec_prefix = @exec_prefix@
+ libdir = @libdir@
+
+-pkgdir = $(libdir)/pkgconfig
++pkgdir = $(prefix)/libdata/pkgconfig
+
+ MV = mv -f
+ RM = rm -f
diff -urN --exclude=CVS libelf.orig/files/patch-configure libelf/files/patch-configure
--- libelf.orig/files/patch-configure Sun Dec 14 16:35:46 2003
+++ libelf/files/patch-configure Fri Aug 19 16:05:58 2005
@@ -1,18 +1,15 @@
-
-$FreeBSD: ports/devel/libelf/files/patch-configure,v 1.4 2003/12/14 14:35:46 roam Exp $
-
---- configure.old Sun Dec 14 14:11:54 2003
-+++ configure Sun Dec 14 14:13:28 2003
-@@ -1139,7 +1139,7 @@
+--- configure.orig Fri Aug 19 16:00:37 2005
++++ configure Fri Aug 19 16:05:31 2005
+@@ -1142,7 +1142,7 @@
fi
--for ac_hdr in unistd.h fcntl.h elf.h sys/elf.h link.h sys/link.h
-+for ac_hdr in unistd.h fcntl.h sys/elf.h link.h sys/link.h
+-for ac_hdr in unistd.h stdint.h fcntl.h
++for ac_hdr in unistd.h stdint.h fcntl.h elf.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-@@ -3055,7 +3055,7 @@
+@@ -3218,7 +3218,7 @@
fi
case "$host" in
@@ -21,12 +18,12 @@
if test "$GCC" = yes; then
-@@ -3112,13 +3112,12 @@
- then
- SHLIB_SFX='-$(VERSION).so'
- else
-- SHLIB_SFX='.so.$(VERSION)'
-+ SHLIB_SFX='.so.$(MAJOR)'
+@@ -3273,13 +3273,12 @@
+ PICFLAGS='-fPIC -DPIC'
+ if test "$mr_enable_gnu_names" = yes
+ then SHLIB_SFX='-$(VERSION).so'
+- else SHLIB_SFX='.so.$(VERSION)'
++ else SHLIB_SFX='.so.$(MAJOR)'
fi
SHLINK_SFX='.so'
SONAME_SFX='.so.$(MAJOR)'
diff -urN --exclude=CVS libelf.orig/pkg-plist libelf/pkg-plist
--- libelf.orig/pkg-plist Wed Jul 16 16:39:31 2003
+++ libelf/pkg-plist Fri Aug 19 16:54:24 2005
@@ -6,5 +6,6 @@
lib/libelf.a
lib/libelf.so
lib/libelf.so.%%LIBVER%%
+libdata/pkgconfig/libelf.pc
share/locale/de/LC_MESSAGES/libelf.mo
@dirrm include/libelf
--- libelf_0.8.5-0.8.6.diff ends here ---
If these will be added, post-patch: should be removed from Makefile
--- patch-lib::32.fsize.c begins here ---
--- lib/32.fsize.c.orig Fri Aug 19 16:18:02 2005
+++ lib/32.fsize.c Fri Aug 19 16:18:48 2005
@@ -68,8 +68,8 @@
{ sizeof(Elf64_Sword), sizeof(__ext_Elf64_Sword) },
{ sizeof(Elf64_Sym), sizeof(__ext_Elf64_Sym) },
{ sizeof(Elf64_Word), sizeof(__ext_Elf64_Word) },
- { sizeof(Elf64_Sxword), sizeof(__ext_Elf64_Sxword) },
- { sizeof(Elf64_Xword), sizeof(__ext_Elf64_Xword) },
+ { sizeof(Elf64_Sword), sizeof(__ext_Elf64_Sxword) },
+ { sizeof(Elf64_Word), sizeof(__ext_Elf64_Xword) },
/* XXX: check Solaris values */
{ 0, 0 }, /* Elf64_Verdef/Verdaux size varies */
{ 0, 0 }, /* Elf64_Verneed/Vernaux size varies */
--- patch-lib::32.fsize.c ends here ---
--- patch-lib::64.xlatetof.c begins here ---
--- lib/64.xlatetof.c.orig Fri Aug 19 16:23:56 2005
+++ lib/64.xlatetof.c Fri Aug 19 16:24:25 2005
@@ -266,8 +266,8 @@
copy_type(off_64,_,Elf64_Off,copy_off_11)
copy_type(sword_64,_,Elf64_Sword,copy_sword_11)
copy_type(word_64,_,Elf64_Word,copy_word_11)
-copy_type(sxword_64,_,Elf64_Sxword,copy_sxword_11)
-copy_type(xword_64,_,Elf64_Xword,copy_xword_11)
+copy_type(sxword_64,_,Elf64_Sword,copy_sxword_11)
+copy_type(xword_64,_,Elf64_Word,copy_xword_11)
copy_type(dyn_64,11,Elf64_Dyn,copy_dyn_11)
copy_type(ehdr_64,11,Elf64_Ehdr,copy_ehdr_11)
copy_type(phdr_64,11,Elf64_Phdr,copy_phdr_11)
--- patch-lib::64.xlatetof.c ends here ---
--- patch-lib::cook.c begins here ---
--- lib/cook.c.orig Fri Aug 19 16:21:53 2005
+++ lib/cook.c Fri Aug 19 16:22:31 2005
@@ -245,7 +245,7 @@
/*
* Check for overflow on 32-bit systems
*/
- if (overflow(num, u.sh64.sh_size, Elf64_Xword)) {
+ if (overflow(num, u.sh64.sh_size, Elf64_Word)) {
seterr(ERROR_OUTSIDE);
return 0;
}
@@ -320,9 +320,9 @@
/*
* Check for overflow on 32-bit systems
*/
- if (overflow(scn->s_size, shdr->sh_size, Elf64_Xword)
+ if (overflow(scn->s_size, shdr->sh_size, Elf64_Word)
|| overflow(scn->s_offset, shdr->sh_offset, Elf64_Off)
- || overflow(sd->sd_data.d_align, shdr->sh_addralign, Elf64_Xword)) {
+ || overflow(sd->sd_data.d_align, shdr->sh_addralign, Elf64_Word)) {
seterr(ERROR_OUTSIDE);
return 0;
}
--- patch-lib::cook.c ends here ---
--- patch-lib::gelf.h begins here ---
--- lib/gelf.h.orig Fri Aug 19 16:15:19 2005
+++ lib/gelf.h Fri Aug 19 16:17:04 2005
@@ -55,8 +55,8 @@
typedef Elf64_Off GElf_Off;
typedef Elf64_Sword GElf_Sword;
typedef Elf64_Word GElf_Word;
-typedef Elf64_Sxword GElf_Sxword;
-typedef Elf64_Xword GElf_Xword;
+typedef Elf64_Sword GElf_Sxword;
+typedef Elf64_Word GElf_Xword;
typedef Elf64_Ehdr GElf_Ehdr;
typedef Elf64_Phdr GElf_Phdr;
--- patch-lib::gelf.h ends here ---
--- patch-lib::gelftrans.c begins here ---
--- lib/gelftrans.c.orig Fri Aug 19 16:25:13 2005
+++ lib/gelftrans.c Fri Aug 19 16:26:15 2005
@@ -53,7 +53,7 @@
# undef ELF64_R_INFO
# define ELF64_R_SYM(i) ((i)>>32)
# define ELF64_R_TYPE(i) ((i)&0xffffffffL)
-# define ELF64_R_INFO(s,t) (((Elf64_Xword)(s)<<32)+((t)&0xffffffffL))
+# define ELF64_R_INFO(s,t) (((Elf64_Word)(s)<<32)+((t)&0xffffffffL))
#endif /* !defined(...) */
static char*
@@ -256,8 +256,8 @@
Elf32_Rela *src = (Elf32_Rela*)tmp;
check_and_copy(GElf_Addr, dst, src, r_offset, NULL);
- dst->r_info = ELF64_R_INFO((Elf64_Xword)ELF32_R_SYM(src->r_info),
- (Elf64_Xword)ELF32_R_TYPE(src->r_info));
+ dst->r_info = ELF64_R_INFO((Elf64_Word)ELF32_R_SYM(src->r_info),
+ (Elf64_Word)ELF32_R_TYPE(src->r_info));
check_and_copy(GElf_Sxword, dst, src, r_addend, NULL);
}
else {
@@ -327,8 +327,8 @@
Elf32_Rel *src = (Elf32_Rel*)tmp;
check_and_copy(GElf_Addr, dst, src, r_offset, NULL);
- dst->r_info = ELF64_R_INFO((Elf64_Xword)ELF32_R_SYM(src->r_info),
- (Elf64_Xword)ELF32_R_TYPE(src->r_info));
+ dst->r_info = ELF64_R_INFO((Elf64_Word)ELF32_R_SYM(src->r_info),
+ (Elf64_Word)ELF32_R_TYPE(src->r_info));
}
else {
seterr(ERROR_UNIMPLEMENTED);
--- patch-lib::gelftrans.c ends here ---
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list