update to 0.158 [release 0.158-1mamba;Sat Feb 22 2014]
This commit is contained in:
parent
6984d69045
commit
de90cc3242
@ -1,2 +1,10 @@
|
|||||||
# elfutils
|
# elfutils
|
||||||
|
|
||||||
|
Elfutils is a collection of utilities, including:
|
||||||
|
* nm (for listing symbols from object files)
|
||||||
|
* size (for listing the section sizes of an object or archive file)
|
||||||
|
* strip (for discarding symbols)
|
||||||
|
* readelf (to see the raw ELF file structures)
|
||||||
|
* elflint (to check for well-formed ELF files)
|
||||||
|
Also included are numerous helper libraries which implement DWARF, ELF, and machine-specific ELF handling.
|
||||||
|
|
||||||
|
53
elfutils-0.131-gcc43.patch
Normal file
53
elfutils-0.131-gcc43.patch
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
diff -up elfutils-0.131/libelf/Makefile.am.gcc43~ elfutils-0.131/libelf/Makefile.am
|
||||||
|
--- elfutils-0.131/libelf/Makefile.am.gcc43~ 2007-10-04 17:10:42.000000000 +0000
|
||||||
|
+++ elfutils-0.131/libelf/Makefile.am 2007-11-24 14:05:43.000000000 +0000
|
||||||
|
@@ -33,7 +33,7 @@ endif
|
||||||
|
if BUILD_STATIC
|
||||||
|
AM_CFLAGS += -fpic
|
||||||
|
endif
|
||||||
|
-AM_CFLAGS += -Wall -Wshadow -Werror -Wunused -Wextra -Wformat=2 -std=gnu99 \
|
||||||
|
+AM_CFLAGS += -Wall -Wshadow -Werror -Wno-unused -Wextra -Wformat=2 -std=gnu99 \
|
||||||
|
$($(*F)_CFLAGS)
|
||||||
|
INCLUDES = -I$(srcdir) -I$(top_srcdir)/lib -I..
|
||||||
|
GCC_INCLUDE = -I$(shell $(CC) -print-file-name=include)
|
||||||
|
diff -up elfutils-0.131/libelf/Makefile.in.gcc43~ elfutils-0.131/libelf/Makefile.in
|
||||||
|
--- elfutils-0.131/libelf/Makefile.in.gcc43~ 2007-11-24 14:06:15.000000000 +0000
|
||||||
|
+++ elfutils-0.131/libelf/Makefile.in 2007-11-24 14:06:27.000000000 +0000
|
||||||
|
@@ -252,11 +251,11 @@ target_alias = @target_alias@
|
||||||
|
top_builddir = @top_builddir@
|
||||||
|
top_srcdir = @top_srcdir@
|
||||||
|
@MUDFLAP_FALSE@AM_CFLAGS = $(am__append_1) -Wall -Wshadow -Werror \
|
||||||
|
-@MUDFLAP_FALSE@ -Wunused -Wextra -Wformat=2 -std=gnu99 \
|
||||||
|
+@MUDFLAP_FALSE@ -Wno-unused -Wextra -Wformat=2 -std=gnu99 \
|
||||||
|
@MUDFLAP_FALSE@ $($(*F)_CFLAGS)
|
||||||
|
@MUDFLAP_TRUE@AM_CFLAGS = -fmudflap $(am__append_1) -Wall -Wshadow \
|
||||||
|
-@MUDFLAP_TRUE@ -Werror -Wunused -Wextra -Wformat=2 -std=gnu99 \
|
||||||
|
-@MUDFLAP_TRUE@ $($(*F)_CFLAGS)
|
||||||
|
+@MUDFLAP_TRUE@ -Werror -Wno-unused -Wextra -Wformat=2 \
|
||||||
|
+@MUDFLAP_TRUE@ -std=gnu99 $($(*F)_CFLAGS)
|
||||||
|
INCLUDES = -I$(srcdir) -I$(top_srcdir)/lib -I..
|
||||||
|
GCC_INCLUDE = -I$(shell $(CC) -print-file-name=include)
|
||||||
|
COMPILE.os = $(filter-out -fprofile-arcs, $(filter-out -ftest-coverage, \
|
||||||
|
diff -up elfutils-0.131/src/ld.h.gcc43~ elfutils-0.131/src/ld.h
|
||||||
|
--- elfutils-0.131/src/ld.h.gcc43~ 2007-06-05 23:23:47.000000000 +0000
|
||||||
|
+++ elfutils-0.131/src/ld.h 2007-11-24 14:05:43.000000000 +0000
|
||||||
|
@@ -1087,19 +1087,5 @@ extern bool dynamically_linked_p (void);
|
||||||
|
|
||||||
|
/* Checked whether the symbol is undefined and referenced from a DSO. */
|
||||||
|
extern bool linked_from_dso_p (struct scninfo *scninfo, size_t symidx);
|
||||||
|
-extern inline bool
|
||||||
|
-linked_from_dso_p (struct scninfo *scninfo, size_t symidx)
|
||||||
|
-{
|
||||||
|
- struct usedfiles *file = scninfo->fileinfo;
|
||||||
|
-
|
||||||
|
- /* If this symbol is not undefined in this file it cannot come from
|
||||||
|
- a DSO. */
|
||||||
|
- if (symidx < file->nlocalsymbols)
|
||||||
|
- return false;
|
||||||
|
-
|
||||||
|
- struct symbol *sym = file->symref[symidx];
|
||||||
|
-
|
||||||
|
- return sym->defined && sym->in_dso;
|
||||||
|
-}
|
||||||
|
|
||||||
|
#endif /* ld.h */
|
59
elfutils-0.131-off64_t.patch
Normal file
59
elfutils-0.131-off64_t.patch
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
http://bugs.gentoo.org/show_bug.cgi?id=204208
|
||||||
|
libelf.h should use __off64_t, as off64_t is not always defined.
|
||||||
|
2008-01-03 Martin von Gagern
|
||||||
|
|
||||||
|
diff -ur elfutils-0.131/libelf/libelf.h elfutils/libelf/libelf.h
|
||||||
|
--- elfutils-0.131/libelf/libelf.h 2007-11-11 20:29:00.000000000 +0100
|
||||||
|
+++ elfutils/libelf/libelf.h 2008-01-03 23:15:36.000000000 +0100
|
||||||
|
@@ -95,7 +95,7 @@
|
||||||
|
Elf_Type d_type; /* Type of this piece of data. */
|
||||||
|
unsigned int d_version; /* ELF version. */
|
||||||
|
size_t d_size; /* Size in bytes. */
|
||||||
|
- off64_t d_off; /* Offset into section. */
|
||||||
|
+ __off64_t d_off; /* Offset into section. */
|
||||||
|
size_t d_align; /* Alignment in section. */
|
||||||
|
} Elf_Data;
|
||||||
|
|
||||||
|
@@ -157,7 +157,7 @@
|
||||||
|
uid_t ar_uid; /* User ID. */
|
||||||
|
gid_t ar_gid; /* Group ID. */
|
||||||
|
mode_t ar_mode; /* File mode. */
|
||||||
|
- off64_t ar_size; /* File size. */
|
||||||
|
+ __off64_t ar_size; /* File size. */
|
||||||
|
char *ar_rawname; /* Original name of archive member. */
|
||||||
|
} Elf_Arhdr;
|
||||||
|
|
||||||
|
@@ -198,13 +198,13 @@
|
||||||
|
extern int elf_end (Elf *__elf);
|
||||||
|
|
||||||
|
/* Update ELF descriptor and write file to disk. */
|
||||||
|
-extern off64_t elf_update (Elf *__elf, Elf_Cmd __cmd);
|
||||||
|
+extern __off64_t elf_update (Elf *__elf, Elf_Cmd __cmd);
|
||||||
|
|
||||||
|
/* Determine what kind of file is associated with ELF. */
|
||||||
|
extern Elf_Kind elf_kind (Elf *__elf) __attribute__ ((__pure__));
|
||||||
|
|
||||||
|
/* Get the base offset for an object file. */
|
||||||
|
-extern off64_t elf_getbase (Elf *__elf);
|
||||||
|
+extern __off64_t elf_getbase (Elf *__elf);
|
||||||
|
|
||||||
|
|
||||||
|
/* Retrieve file identification data. */
|
||||||
|
@@ -302,7 +302,7 @@
|
||||||
|
would be for TYPE. The resulting Elf_Data pointer is valid until
|
||||||
|
elf_end (ELF) is called. */
|
||||||
|
extern Elf_Data *elf_getdata_rawchunk (Elf *__elf,
|
||||||
|
- off64_t __offset, size_t __size,
|
||||||
|
+ __off64_t __offset, size_t __size,
|
||||||
|
Elf_Type __type);
|
||||||
|
|
||||||
|
|
||||||
|
@@ -314,7 +314,7 @@
|
||||||
|
extern Elf_Arhdr *elf_getarhdr (Elf *__elf);
|
||||||
|
|
||||||
|
/* Return offset in archive for current file ELF. */
|
||||||
|
-extern off64_t elf_getaroff (Elf *__elf);
|
||||||
|
+extern __off64_t elf_getaroff (Elf *__elf);
|
||||||
|
|
||||||
|
/* Select archive element at OFFSET. */
|
||||||
|
extern size_t elf_rand (Elf *__elf, size_t __offset);
|
199
elfutils-0.131-strip-copy-symtab.patch
Normal file
199
elfutils-0.131-strip-copy-symtab.patch
Normal file
@ -0,0 +1,199 @@
|
|||||||
|
2006-09-19 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
* strip.c (handle_elf): Formatting. If any relocation sections
|
||||||
|
stripped into separate debug info reference symtab that is kept,
|
||||||
|
emit symtab/strtab also into the separate debug info file.
|
||||||
|
|
||||||
|
--- elfutils/src/strip.c
|
||||||
|
+++ elfutils/src/strip.c
|
||||||
|
@@ -399,6 +399,7 @@ handle_elf (int fd, Elf *elf, const char
|
||||||
|
Elf_Scn *newscn;
|
||||||
|
struct Ebl_Strent *se;
|
||||||
|
Elf32_Word *newsymidx;
|
||||||
|
+ void *debug_data;
|
||||||
|
} *shdr_info = NULL;
|
||||||
|
Elf_Scn *scn;
|
||||||
|
size_t cnt;
|
||||||
|
@@ -826,6 +827,37 @@ handle_elf (int fd, Elf *elf, const char
|
||||||
|
The ones that are not removed in the stripped file are SHT_NOBITS. */
|
||||||
|
if (debug_fname != NULL)
|
||||||
|
{
|
||||||
|
+ /* libbfd and apps using it don't cope with separate debuginfo objects
|
||||||
|
+ with relocation sections against SHT_NOBITS .symtab/.strtab
|
||||||
|
+ - libbfd isn't able to look up the .symtab/.strtab in the stripped
|
||||||
|
+ object instead. As a workaround, emit .symtab/.strtab in both
|
||||||
|
+ places. */
|
||||||
|
+ for (cnt = 1; cnt < shnum; ++cnt)
|
||||||
|
+ {
|
||||||
|
+ if (shdr_info[cnt].idx == 0
|
||||||
|
+ && (shdr_info[cnt].shdr.sh_type == SHT_REL
|
||||||
|
+ || shdr_info[cnt].shdr.sh_type == SHT_RELA)
|
||||||
|
+ && (shdr_info[cnt].shdr.sh_flags & SHF_ALLOC) == 0)
|
||||||
|
+ {
|
||||||
|
+ Elf32_Word symtabidx = shdr_info[cnt].old_sh_link;
|
||||||
|
+ struct shdr_info *si = &shdr_info[symtabidx];
|
||||||
|
+ si->debug_data = "";
|
||||||
|
+ shdr_info[si->old_sh_link].debug_data = "";
|
||||||
|
+ if (si->symtab_idx)
|
||||||
|
+ shdr_info[si->symtab_idx].debug_data = "";
|
||||||
|
+
|
||||||
|
+ if (si->shdr.sh_type != SHT_SYMTAB
|
||||||
|
+ || (si->shdr.sh_flags & SHF_ALLOC)
|
||||||
|
+ || shdr_info[si->old_sh_link].shdr.sh_type != SHT_STRTAB
|
||||||
|
+ || (shdr_info[si->old_sh_link].shdr.sh_flags & SHF_ALLOC)
|
||||||
|
+ || (si->symtab_idx
|
||||||
|
+ && (shdr_info[si->symtab_idx].shdr.sh_flags
|
||||||
|
+ & SHF_ALLOC)))
|
||||||
|
+ error (EXIT_FAILURE, 0,
|
||||||
|
+ gettext ("invalid symtab/strtab referenced by nonallocated section"));
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
for (cnt = 1; cnt < shnum; ++cnt)
|
||||||
|
{
|
||||||
|
scn = elf_newscn (debugelf);
|
||||||
|
@@ -835,6 +867,7 @@ handle_elf (int fd, Elf *elf, const char
|
||||||
|
elf_errmsg (-1));
|
||||||
|
|
||||||
|
bool discard_section = (shdr_info[cnt].idx > 0
|
||||||
|
+ && shdr_info[cnt].debug_data == NULL
|
||||||
|
&& shdr_info[cnt].shdr.sh_type != SHT_NOTE
|
||||||
|
&& cnt != ehdr->e_shstrndx);
|
||||||
|
|
||||||
|
@@ -865,6 +898,13 @@ handle_elf (int fd, Elf *elf, const char
|
||||||
|
*debugdata = *shdr_info[cnt].data;
|
||||||
|
if (discard_section)
|
||||||
|
debugdata->d_buf = NULL;
|
||||||
|
+ else if (shdr_info[cnt].debug_data != NULL)
|
||||||
|
+ {
|
||||||
|
+ shdr_info[cnt].debug_data = xmalloc (debugdata->d_size);
|
||||||
|
+ memcpy (shdr_info[cnt].debug_data, debugdata->d_buf,
|
||||||
|
+ debugdata->d_size);
|
||||||
|
+ debugdata->d_buf = shdr_info[cnt].debug_data;
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Finish the ELF header. Fill in the fields not handled by
|
||||||
|
@@ -1056,7 +1096,7 @@ handle_elf (int fd, Elf *elf, const char
|
||||||
|
shdr_info[shdr_info[cnt].shdr.sh_info].idx;
|
||||||
|
|
||||||
|
/* Get the data from the old file if necessary. We already
|
||||||
|
- created the data for the section header string table. */
|
||||||
|
+ created the data for the section header string table. */
|
||||||
|
if (cnt < shnum)
|
||||||
|
{
|
||||||
|
if (shdr_info[cnt].data == NULL)
|
||||||
|
@@ -1283,6 +1323,13 @@ handle_elf (int fd, Elf *elf, const char
|
||||||
|
if (shdr_info[shdr_info[cnt].old_sh_link].newsymidx == NULL)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
+ /* If the symbol table is not discarded, but additionally
|
||||||
|
+ duplicated in separate debug file and this section
|
||||||
|
+ is discarded, don't adjust anything. */
|
||||||
|
+ if (shdr_info[cnt].idx == 0
|
||||||
|
+ && shdr_info[shdr_info[cnt].old_sh_link].debug_data != NULL)
|
||||||
|
+ continue;
|
||||||
|
+
|
||||||
|
Elf32_Word *newsymidx
|
||||||
|
= shdr_info[shdr_info[cnt].old_sh_link].newsymidx;
|
||||||
|
Elf_Data *d = elf_getdata (shdr_info[cnt].idx == 0
|
||||||
|
@@ -1341,6 +1388,13 @@ handle_elf (int fd, Elf *elf, const char
|
||||||
|
if (shdr_info[symtabidx].newsymidx == NULL)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
+ /* If the symbol table is not discarded, but additionally
|
||||||
|
+ duplicated in separate debug file and this section
|
||||||
|
+ is discarded, don't adjust anything. */
|
||||||
|
+ if (shdr_info[cnt].idx == 0
|
||||||
|
+ && shdr_info[symtabidx].debug_data != NULL)
|
||||||
|
+ continue;
|
||||||
|
+
|
||||||
|
assert (shdr_info[cnt].idx > 0);
|
||||||
|
|
||||||
|
/* The hash section in the new file. */
|
||||||
|
@@ -1460,7 +1514,7 @@ handle_elf (int fd, Elf *elf, const char
|
||||||
|
chain[hidx] = inner;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
- }
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
else if (shdr_info[cnt].shdr.sh_type == SHT_GNU_versym)
|
||||||
|
{
|
||||||
|
@@ -1473,6 +1527,13 @@ handle_elf (int fd, Elf *elf, const char
|
||||||
|
if (shdr_info[symtabidx].newsymidx == NULL)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
+ /* If the symbol table is not discarded, but additionally
|
||||||
|
+ duplicated in separate debug file and this section
|
||||||
|
+ is discarded, don't adjust anything. */
|
||||||
|
+ if (shdr_info[cnt].idx == 0
|
||||||
|
+ && shdr_info[symtabidx].debug_data != NULL)
|
||||||
|
+ continue;
|
||||||
|
+
|
||||||
|
assert (shdr_info[cnt].idx > 0);
|
||||||
|
|
||||||
|
/* The symbol version section in the new file. */
|
||||||
|
@@ -1515,20 +1576,27 @@ handle_elf (int fd, Elf *elf, const char
|
||||||
|
else if (shdr_info[cnt].shdr.sh_type == SHT_GROUP)
|
||||||
|
{
|
||||||
|
/* Check whether the associated symbol table changed. */
|
||||||
|
- if (shdr_info[shdr_info[cnt].old_sh_link].newsymidx != NULL)
|
||||||
|
- {
|
||||||
|
- /* Yes the symbol table changed. Update the section
|
||||||
|
- header of the section group. */
|
||||||
|
- scn = elf_getscn (newelf, shdr_info[cnt].idx);
|
||||||
|
- GElf_Shdr shdr_mem;
|
||||||
|
- GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem);
|
||||||
|
- assert (shdr != NULL);
|
||||||
|
+ if (shdr_info[shdr_info[cnt].old_sh_link].newsymidx == NULL)
|
||||||
|
+ continue;
|
||||||
|
|
||||||
|
- size_t stabidx = shdr_info[cnt].old_sh_link;
|
||||||
|
- shdr->sh_info = shdr_info[stabidx].newsymidx[shdr->sh_info];
|
||||||
|
+ /* If the symbol table is not discarded, but additionally
|
||||||
|
+ duplicated in separate debug file and this section
|
||||||
|
+ is discarded, don't adjust anything. */
|
||||||
|
+ if (shdr_info[cnt].idx == 0
|
||||||
|
+ && shdr_info[shdr_info[cnt].old_sh_link].debug_data != NULL)
|
||||||
|
+ continue;
|
||||||
|
|
||||||
|
- (void) gelf_update_shdr (scn, shdr);
|
||||||
|
- }
|
||||||
|
+ /* Yes the symbol table changed. Update the section
|
||||||
|
+ header of the section group. */
|
||||||
|
+ scn = elf_getscn (newelf, shdr_info[cnt].idx);
|
||||||
|
+ GElf_Shdr shdr_mem;
|
||||||
|
+ GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem);
|
||||||
|
+ assert (shdr != NULL);
|
||||||
|
+
|
||||||
|
+ size_t stabidx = shdr_info[cnt].old_sh_link;
|
||||||
|
+ shdr->sh_info = shdr_info[stabidx].newsymidx[shdr->sh_info];
|
||||||
|
+
|
||||||
|
+ (void) gelf_update_shdr (scn, shdr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -1658,7 +1726,10 @@ handle_elf (int fd, Elf *elf, const char
|
||||||
|
table indices. */
|
||||||
|
if (any_symtab_changes)
|
||||||
|
for (cnt = 1; cnt <= shdridx; ++cnt)
|
||||||
|
- free (shdr_info[cnt].newsymidx);
|
||||||
|
+ {
|
||||||
|
+ free (shdr_info[cnt].newsymidx);
|
||||||
|
+ free (shdr_info[cnt].debug_data);
|
||||||
|
+ }
|
||||||
|
|
||||||
|
/* Free the memory. */
|
||||||
|
if ((shnum + 2) * sizeof (struct shdr_info) > MAX_STACK_ALLOC)
|
||||||
|
--- elfutils/tests/run-strip-test5.sh.~1~
|
||||||
|
+++ elfutils/tests/run-strip-test5.sh
|
||||||
|
@@ -1,5 +1,5 @@
|
||||||
|
original=testfile8
|
||||||
|
-stripped=testfile16
|
||||||
|
-debugfile=testfile16.debug
|
||||||
|
+stripped=testfile16.symtab
|
||||||
|
+debugfile=testfile16.symtab.debug
|
||||||
|
|
||||||
|
. $srcdir/run-strip-test.sh
|
||||||
|
|
1814
elfutils-0.158-portability.patch
Normal file
1814
elfutils-0.158-portability.patch
Normal file
File diff suppressed because it is too large
Load Diff
1756
elfutils-0.158-robustify.patch
Normal file
1756
elfutils-0.158-robustify.patch
Normal file
File diff suppressed because it is too large
Load Diff
219
elfutils.spec
Normal file
219
elfutils.spec
Normal file
@ -0,0 +1,219 @@
|
|||||||
|
%define libname libelf
|
||||||
|
%define _program_prefix eu-
|
||||||
|
|
||||||
|
Name: elfutils
|
||||||
|
Version: 0.158
|
||||||
|
Release: 1mamba
|
||||||
|
Summary: A collection of utilities and DSOs to handle compiled objects
|
||||||
|
Group: Development/Tools
|
||||||
|
Vendor: openmamba
|
||||||
|
Distribution: openmamba
|
||||||
|
Packager: Silvan Calarco <silvan.calarco@mambasoft.it>
|
||||||
|
URL: htpps://fedorahosted.org/elfutils/
|
||||||
|
Source: https://fedorahosted.org/releases/e/l/elfutils/%{version}/elfutils-%{version}.tar.bz2
|
||||||
|
# NOTE: manual intervetion needed for updates, upstream files don't have version in name
|
||||||
|
Patch1: https://fedorahosted.org/releases/e/l/elfutils/%{version}/elfutils-%{version}-robustify.patch
|
||||||
|
Patch2: https://fedorahosted.org/releases/e/l/elfutils/%{version}/elfutils-%{version}-portability.patch
|
||||||
|
Patch3: %{name}-0.131-strip-copy-symtab.patch
|
||||||
|
Patch4: %{name}-0.131-gcc43.patch
|
||||||
|
Patch5: %{name}-0.131-off64_t.patch
|
||||||
|
License: Open Software License
|
||||||
|
## AUTOBUILDREQ-BEGIN
|
||||||
|
BuildRequires: glibc-devel
|
||||||
|
## AUTOBUILDREQ-END
|
||||||
|
BuildRequires: gettext-devel
|
||||||
|
BuildRequires: gcc >= 3.4
|
||||||
|
BuildRequires: bison >= 1.875
|
||||||
|
BuildRequires: flex >= 2.5.4a
|
||||||
|
BuildRequires: bzip2
|
||||||
|
Requires: %{libname} = %{version}-%{release}
|
||||||
|
BuildRoot: %{_tmppath}/%{name}-%{version}-root
|
||||||
|
|
||||||
|
%description
|
||||||
|
Elfutils is a collection of utilities, including:
|
||||||
|
* nm (for listing symbols from object files)
|
||||||
|
* size (for listing the section sizes of an object or archive file)
|
||||||
|
* strip (for discarding symbols)
|
||||||
|
* readelf (to see the raw ELF file structures)
|
||||||
|
* elflint (to check for well-formed ELF files)
|
||||||
|
Also included are numerous helper libraries which implement DWARF, ELF, and machine-specific ELF handling.
|
||||||
|
|
||||||
|
%package devel
|
||||||
|
Summary: Devel package for %{name}
|
||||||
|
Group: Development/Libraries
|
||||||
|
Requires: %{name} = %{version}-%{release}
|
||||||
|
|
||||||
|
%description devel
|
||||||
|
The %{name}-devel package contains the libraries to create applications for handling compiled objects.
|
||||||
|
* libebl provides some higher-level ELF access functionality
|
||||||
|
* libdw provides access to the DWARF debugging information
|
||||||
|
* libasm provides a programmable assembler interface
|
||||||
|
|
||||||
|
%package -n %{libname}
|
||||||
|
Summary: Library to read and write ELF files
|
||||||
|
Group: System/Libraries
|
||||||
|
Provides: elfutils-libelf
|
||||||
|
Obsoletes: elfutils-libelf
|
||||||
|
|
||||||
|
%description -n %{libname}
|
||||||
|
The %{libname} package provides a DSO which allows reading and writing ELF files on a high level.
|
||||||
|
Third party programs depend on this package to read internals of ELF files.
|
||||||
|
The programs of the %{name} package use it also to generate new ELF files.
|
||||||
|
|
||||||
|
%package -n %{libname}-devel
|
||||||
|
Summary: Development support for libelf
|
||||||
|
Group: Development/Libraries
|
||||||
|
Requires: %{libname} = %{version}-%{release}
|
||||||
|
Provides: elfutils-libelf-devel
|
||||||
|
Obsoletes: elfutils-libelf-devel
|
||||||
|
|
||||||
|
%description -n %{libname}-devel
|
||||||
|
The %{libname}-devel package contains the libraries to create applications for handling compiled objects.
|
||||||
|
Libelf allows you to access the internals of the ELF object file format, so you can see the different sections of an ELF file.
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%setup -q
|
||||||
|
#%patch3 -p1
|
||||||
|
%patch2 -p1
|
||||||
|
%patch1 -p1
|
||||||
|
#%patch5 -p1
|
||||||
|
#sed -i "s|-Werror||" src/Makefile.in tests/Makefile.in libelf/Makefile.in
|
||||||
|
|
||||||
|
%build
|
||||||
|
RPM_OPT_FLAGS="${RPM_OPT_FLAGS/-Wall/}"
|
||||||
|
%configure \
|
||||||
|
--program-prefix=%{_program_prefix} \
|
||||||
|
CFLAGS="$RPM_OPT_FLAGS -fexceptions -D__NO_INLINE__"
|
||||||
|
|
||||||
|
%if "%{_host}" == "%{_build}"
|
||||||
|
%make %{?_smp_mflags}
|
||||||
|
%ifnarch arm
|
||||||
|
%make check
|
||||||
|
%endif
|
||||||
|
%else
|
||||||
|
make CC=%{_build}-gcc -C lib libeu.a
|
||||||
|
make CC=%{_build}-gcc -C libcpu i386_gendis
|
||||||
|
mv libcpu/i386_gendis libcpu/i386_gendis.build
|
||||||
|
sed -i "s|\./i386_gendis|./i386_gendis.build|" libcpu/Makefile
|
||||||
|
make -C libcpu clean
|
||||||
|
make -C lib clean
|
||||||
|
%make || %make
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%install
|
||||||
|
[ "%{buildroot}" != / ] && rm -rf "%{buildroot}"
|
||||||
|
%makeinstall
|
||||||
|
|
||||||
|
chmod +x %{buildroot}%{_libdir}/lib*.so*
|
||||||
|
chmod +x %{buildroot}%{_libdir}/%{name}/lib*.so*
|
||||||
|
|
||||||
|
# Remove unpackaged files
|
||||||
|
rm -f %{buildroot}%{_bindir}/%{_program_prefix}{ld,objdump}
|
||||||
|
rm -f %{buildroot}%{_includedir}/%{name}/libasm.h
|
||||||
|
rm -f %{buildroot}%{_libdir}/libasm-%{version}.so
|
||||||
|
rm -f %{buildroot}%{_libdir}/libasm.{a,so,so.*}
|
||||||
|
|
||||||
|
%find_lang %{name}
|
||||||
|
|
||||||
|
%clean
|
||||||
|
[ "%{buildroot}" != / ] && rm -rf "%{buildroot}"
|
||||||
|
|
||||||
|
%post -p /sbin/ldconfig
|
||||||
|
%postun -p /sbin/ldconfig
|
||||||
|
|
||||||
|
%post -n %{libname} -p /sbin/ldconfig
|
||||||
|
%postun -n %{libname} -p /sbin/ldconfig
|
||||||
|
|
||||||
|
%files -f %{name}.lang
|
||||||
|
%defattr(-,root,root)
|
||||||
|
%{_bindir}/%{_program_prefix}ar
|
||||||
|
%{_bindir}/%{_program_prefix}make-debug-archive
|
||||||
|
%{_bindir}/%{_program_prefix}elflint
|
||||||
|
%{_bindir}/%{_program_prefix}nm
|
||||||
|
%{_bindir}/%{_program_prefix}readelf
|
||||||
|
%{_bindir}/%{_program_prefix}size
|
||||||
|
%{_bindir}/%{_program_prefix}stack
|
||||||
|
%{_bindir}/%{_program_prefix}strip
|
||||||
|
%{_bindir}/%{_program_prefix}unstrip
|
||||||
|
%{_bindir}/%{_program_prefix}findtextrel
|
||||||
|
%{_bindir}/%{_program_prefix}addr2line
|
||||||
|
%{_bindir}/%{_program_prefix}elfcmp
|
||||||
|
%{_bindir}/%{_program_prefix}ranlib
|
||||||
|
%{_bindir}/%{_program_prefix}strings
|
||||||
|
%{_libdir}/libdw-%{version}.so
|
||||||
|
%{_libdir}/libdw.so.*
|
||||||
|
%dir %{_libdir}/%{name}
|
||||||
|
%{_libdir}/%{name}/lib*.so
|
||||||
|
%doc AUTHORS COPYING ChangeLog NEWS README THANKS TODO
|
||||||
|
|
||||||
|
%files devel
|
||||||
|
%defattr(-,root,root)
|
||||||
|
%{_includedir}/dwarf.h
|
||||||
|
%dir %{_includedir}/%{name}
|
||||||
|
%{_includedir}/%{name}/elf-knowledge.h
|
||||||
|
%{_includedir}/%{name}/libebl.h
|
||||||
|
%{_includedir}/%{name}/libdw.h
|
||||||
|
%{_includedir}/%{name}/libdwfl.h
|
||||||
|
%{_includedir}/%{name}/version.h
|
||||||
|
%{_libdir}/libebl.a
|
||||||
|
%{_libdir}/libdw.a
|
||||||
|
%{_libdir}/libdw.so
|
||||||
|
|
||||||
|
%files -n %{libname}
|
||||||
|
%defattr(-,root,root)
|
||||||
|
%{_libdir}/libelf-%{version}.so
|
||||||
|
%{_libdir}/libelf.so.*
|
||||||
|
|
||||||
|
%files -n %{libname}-devel
|
||||||
|
%defattr(-,root,root)
|
||||||
|
%{_includedir}/libelf.h
|
||||||
|
%{_includedir}/gelf.h
|
||||||
|
%{_includedir}/nlist.h
|
||||||
|
%{_libdir}/libelf.a
|
||||||
|
%{_libdir}/libelf.so
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* Sat Feb 22 2014 Silvan Calarco <silvan.calarco@mambasoft.it> 0.158-1mamba
|
||||||
|
- update to 0.158
|
||||||
|
|
||||||
|
* Sat Nov 09 2013 Automatic Build System <autodist@mambasoft.it> 0.157-1mamba
|
||||||
|
- automatic version update by autodist
|
||||||
|
|
||||||
|
* Mon Sep 23 2013 Automatic Build System <autodist@mambasoft.it> 0.156-1mamba
|
||||||
|
- automatic version update by autodist
|
||||||
|
|
||||||
|
* Sat Dec 01 2012 Automatic Build System <autodist@mambasoft.it> 0.155-1mamba
|
||||||
|
- update to 0.155
|
||||||
|
|
||||||
|
* Wed Jan 12 2011 Automatic Build System <autodist@mambasoft.it> 0.148-2mamba
|
||||||
|
- automatic update by autodist
|
||||||
|
|
||||||
|
* Sun Nov 21 2010 Automatic Build System <autodist@mambasoft.it> 0.148-1mamba
|
||||||
|
- automatic update by autodist
|
||||||
|
|
||||||
|
* Wed Jun 16 2010 Silvan Calarco <silvan.calarco@mambasoft.it> 0.147-1mamba
|
||||||
|
- update to 0.147
|
||||||
|
|
||||||
|
* Mon Apr 12 2010 Silvan Calarco <silvan.calarco@mambasoft.it> 0.145-1mamba
|
||||||
|
- update to 0.145
|
||||||
|
|
||||||
|
* Wed Jul 01 2009 Automatic Build System <autodist@mambasoft.it> 0.141-1mamba
|
||||||
|
- update to 0.141
|
||||||
|
|
||||||
|
* Tue Feb 17 2009 Silvan Calarco <silvan.calarco@mambasoft.it> 0.131-2mamba
|
||||||
|
- add off64_t patch
|
||||||
|
|
||||||
|
* Sun May 18 2008 Silvan Calarco <silvan.calarco@mambasoft.it> 0.131-1mamba
|
||||||
|
- update to 0.131
|
||||||
|
- rename elfutils-libelf to libelf and obsolete old package names
|
||||||
|
|
||||||
|
* Tue Feb 28 2006 Stefano Cotta Ramusino <stefano.cotta@qilinux.it> 0.119-2qilnx
|
||||||
|
- added portability patch
|
||||||
|
|
||||||
|
* Mon Feb 27 2006 Stefano Cotta Ramusino <stefano.cotta@qilinux.it> 0.119-1qilnx
|
||||||
|
- update to version 0.119 by autospec
|
||||||
|
- fixed source URL
|
||||||
|
- fixed license
|
||||||
|
|
||||||
|
* Tue Jan 03 2006 Davide Madrisan <davide.madrisan@qilinux.it> 0.118-1qilnx
|
||||||
|
- package created by autospec
|
Loading…
Reference in New Issue
Block a user