<div dir="ltr"><div dir="ltr">po 6. 4. 2020 v 8:45 odesílatel Rosen Penev <<a href="mailto:rosenp@gmail.com">rosenp@gmail.com</a>> napsal:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Sun, Apr 5, 2020 at 11:01 PM Oldřich Jedlička <<a href="mailto:oldium.pro@gmail.com" target="_blank">oldium.pro@gmail.com</a>> wrote:<br>
><br>
> po 6. 4. 2020 v 4:02 odesílatel Rosen Penev <<a href="mailto:rosenp@gmail.com" target="_blank">rosenp@gmail.com</a>> napsal:<br>
>><br>
>> Removed sys/cdefs usage. The header is deprecated.<br>
>><br>
>> Removed canonicalize_file_name define. It's already fixed upstream.<br>
>><br>
>> Added --disable-debuginfod. Seems to be needed.<br>
>><br>
>> Modified patch 005 to build more stuff. It was failing before. It still<br>
>> only builds libraries.<br>
>><br>
>> Modified patch 100 to use strerror under non-glibc. It is used under<br>
>> glibc as strerror is not thread safe. It is under musl and uClibc-ng.<br>
>> strerror_l is not available under uClibc-ng.<br>
>><br>
>> Signed-off-by: Rosen Penev <<a href="mailto:rosenp@gmail.com" target="_blank">rosenp@gmail.com</a>><br>
>> ---<br>
>>  package/libs/elfutils/Makefile                |  7 +-<br>
>>  .../patches/003-libintl-compatibility.patch   | 75 +++++++++----------<br>
>>  .../patches/005-build_only_libs.patch         | 13 ++--<br>
>>  .../elfutils/patches/100-musl-compat.patch    | 22 ++----<br>
>>  .../libs/elfutils/patches/101-no-fts.patch    |  2 +-<br>
>>  .../libs/elfutils/patches/110-no-cdefs.patch  | 58 ++++++++++++++<br>
>>  6 files changed, 113 insertions(+), 64 deletions(-)<br>
>>  create mode 100644 package/libs/elfutils/patches/110-no-cdefs.patch<br>
>><br>
>> diff --git a/package/libs/elfutils/Makefile b/package/libs/elfutils/Makefile<br>
>> index 630c48820a..e6868c56f4 100644<br>
>> --- a/package/libs/elfutils/Makefile<br>
>> +++ b/package/libs/elfutils/Makefile<br>
>> @@ -7,12 +7,12 @@<br>
>>  include $(TOPDIR)/<a href="http://rules.mk" rel="noreferrer" target="_blank">rules.mk</a><br>
>><br>
>>  PKG_NAME:=elfutils<br>
>> -PKG_VERSION:=0.177<br>
>> -PKG_RELEASE:=2<br>
>> +PKG_VERSION:=0.179<br>
>> +PKG_RELEASE:=1<br>
>><br>
>>  PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2<br>
>>  PKG_SOURCE_URL:=<a href="https://sourceware.org/$(PKG_NAME)/ftp/$(PKG_VERSION)" rel="noreferrer" target="_blank">https://sourceware.org/$(PKG_NAME)/ftp/$(PKG_VERSION)</a><br>
>> -PKG_HASH:=fa489deccbcae7d8c920f60d85906124c1989c591196d90e0fd668e3dc05042e<br>
>> +PKG_HASH:=25a545566cbacaa37ae6222e58f1c48ea4570f53ba991886e2f5ce96e22a23a2<br>
>><br>
>>  PKG_MAINTAINER:=Luiz Angelo Daros de Luca <<a href="mailto:luizluca@gmail.com" target="_blank">luizluca@gmail.com</a>><br>
>>  PKG_LICENSE:=GPL-3.0-or-later<br>
>> @@ -63,6 +63,7 @@ endif<br>
>><br>
>>  CONFIGURE_ARGS += \<br>
>>         --program-prefix=eu- \<br>
>> +       --disable-debuginfod \<br>
>>         --without-lzma<br>
>><br>
>>  TARGET_CFLAGS += -D_GNU_SOURCE -Wno-unused-result -Wno-format-nonliteral<br>
>> diff --git a/package/libs/elfutils/patches/003-libintl-compatibility.patch b/package/libs/elfutils/patches/003-libintl-compatibility.patch<br>
>> index 32bfaf8e6d..ea0f4535a5 100644<br>
>> --- a/package/libs/elfutils/patches/003-libintl-compatibility.patch<br>
>> +++ b/package/libs/elfutils/patches/003-libintl-compatibility.patch<br>
>> @@ -1,8 +1,31 @@<br>
>> ---- a/libelf/libelfP.h<br>
>> -+++ b/libelf/libelfP.h<br>
>> -@@ -39,6 +39,9 @@<br>
>> - #include <stdio.h><br>
>> - #include <string.h><br>
>> +--- a/config/<a href="http://libelf.pc.in" rel="noreferrer" target="_blank">libelf.pc.in</a><br>
>> ++++ b/config/<a href="http://libelf.pc.in" rel="noreferrer" target="_blank">libelf.pc.in</a><br>
>> +@@ -8,7 +8,7 @@ Description: elfutils libelf library to read and write ELF files<br>
>> + Version: @VERSION@<br>
>> + URL: <a href="http://elfutils.org/" rel="noreferrer" target="_blank">http://elfutils.org/</a><br>
>> +<br>
>> +-Libs: -L${libdir} -lelf<br>
>> ++Libs: -L${libdir} -lelf @intl_LDFLAGS@<br>
>> + Cflags: -I${includedir}<br>
>> +<br>
>> + Requires.private: zlib<br>
>> +--- a/<a href="http://configure.ac" rel="noreferrer" target="_blank">configure.ac</a><br>
>> ++++ b/<a href="http://configure.ac" rel="noreferrer" target="_blank">configure.ac</a><br>
>> +@@ -586,6 +586,9 @@ AC_CONFIG_FILES([config/libelf.pc config/libdw.pc config/libdebuginfod.pc])<br>
>> + AC_SUBST(USE_NLS, yes)<br>
>> + AM_PO_SUBDIRS<br>
>> +<br>
>> ++case "$USE_NLS" in yes) intl_LDFLAGS="-lintl" ;; esac<br>
>> ++AC_SUBST([intl_LDFLAGS])<br>
>> ++<br>
>> + dnl Appended to the config.h file.<br>
>> + dnl We hide all kinds of configuration magic in lib/eu-config.h.<br>
>> + AH_BOTTOM([#include <eu-config.h>])<br>
>> +--- a/libasm/libasmP.h<br>
>> ++++ b/libasm/libasmP.h<br>
>> +@@ -36,6 +36,9 @@<br>
>> +<br>
>> + #include "libdwelf.h"<br>
>><br>
>>  +#ifdef _ /* fix libintl-stub */<br>
>>  +#undef _<br>
>> @@ -12,20 +35,19 @@<br>
>><br>
>>  --- a/libdw/libdwP.h<br>
>>  +++ b/libdw/libdwP.h<br>
>> -@@ -35,7 +35,9 @@<br>
>> - #include <libdw.h><br>
>> +@@ -37,6 +37,9 @@<br>
>>   #include <dwarf.h><br>
>> + #include "atomics.h"<br>
>><br>
>> --<br>
>>  +#ifdef _ /* fix libintl-stub */<br>
>>  +#undef _<br>
>>  +#endif<br>
>> +<br>
>>   /* gettext helper macros.  */<br>
>>   #define _(Str) dgettext ("elfutils", Str)<br>
>> -<br>
>>  --- a/libdwfl/libdwflP.h<br>
>>  +++ b/libdwfl/libdwflP.h<br>
>> -@@ -43,6 +43,9 @@<br>
>> +@@ -44,6 +44,9 @@<br>
>><br>
>>   typedef struct Dwfl_Process Dwfl_Process;<br>
>><br>
>> @@ -35,11 +57,11 @@<br>
>>   /* gettext helper macros.  */<br>
>>   #define _(Str) dgettext ("elfutils", Str)<br>
>><br>
>> ---- a/libasm/libasmP.h<br>
>> -+++ b/libasm/libasmP.h<br>
>> -@@ -35,6 +35,9 @@<br>
>> -<br>
>> - #include "libdwelf.h"<br>
>> +--- a/libelf/libelfP.h<br>
>> ++++ b/libelf/libelfP.h<br>
>> +@@ -39,6 +39,9 @@<br>
>> + #include <stdio.h><br>
>> + #include <string.h><br>
>><br>
>>  +#ifdef _ /* fix libintl-stub */<br>
>>  +#undef _<br>
>> @@ -47,26 +69,3 @@<br>
>>   /* gettext helper macros.  */<br>
>>   #define _(Str) dgettext ("elfutils", Str)<br>
>><br>
>> ---- a/config/<a href="http://libelf.pc.in" rel="noreferrer" target="_blank">libelf.pc.in</a><br>
>> -+++ b/config/<a href="http://libelf.pc.in" rel="noreferrer" target="_blank">libelf.pc.in</a><br>
>> -@@ -8,7 +8,7 @@ Description: elfutils libelf library to<br>
>> - Version: @VERSION@<br>
>> - URL: <a href="http://elfutils.org/" rel="noreferrer" target="_blank">http://elfutils.org/</a><br>
>> -<br>
>> --Libs: -L${libdir} -lelf<br>
>> -+Libs: -L${libdir} -lelf @intl_LDFLAGS@<br>
>> - Cflags: -I${includedir}<br>
>> -<br>
>> - Requires.private: zlib<br>
>> ---- a/<a href="http://configure.ac" rel="noreferrer" target="_blank">configure.ac</a><br>
>> -+++ b/<a href="http://configure.ac" rel="noreferrer" target="_blank">configure.ac</a><br>
>> -@@ -543,6 +543,9 @@ AC_CONFIG_FILES([config/libelf.pc config<br>
>> - AC_SUBST(USE_NLS, yes)<br>
>> - AM_PO_SUBDIRS<br>
>> -<br>
>> -+case "$USE_NLS" in yes) intl_LDFLAGS="-lintl" ;; esac<br>
>> -+AC_SUBST([intl_LDFLAGS])<br>
>> -+<br>
>> - dnl Appended to the config.h file.<br>
>> - dnl We hide all kinds of configuration magic in lib/eu-config.h.<br>
>> - AH_BOTTOM([#include <eu-config.h>])<br>
>> diff --git a/package/libs/elfutils/patches/005-build_only_libs.patch b/package/libs/elfutils/patches/005-build_only_libs.patch<br>
>> index 93d593a0fc..a81d1d2cab 100644<br>
>> --- a/package/libs/elfutils/patches/005-build_only_libs.patch<br>
>> +++ b/package/libs/elfutils/patches/005-build_only_libs.patch<br>
>> @@ -1,12 +1,11 @@<br>
>>  --- a/Makefile.am<br>
>>  +++ b/Makefile.am<br>
>> -@@ -27,8 +27,7 @@ AM_MAKEFLAGS = --no-print-directory<br>
>> +@@ -27,7 +27,7 @@ AM_MAKEFLAGS = --no-print-directory<br>
>>   pkginclude_HEADERS = version.h<br>
>><br>
>> - # Add doc back when we have some real content.<br>
>> --SUBDIRS = config m4 lib libelf libebl libdwelf libdwfl libdw libcpu libasm \<br>
>> --        backends src po tests<br>
>> -+SUBDIRS = config m4 lib libelf libebl libdwelf libdwfl libdw libasm<br>
>> + SUBDIRS = config m4 lib libelf libcpu backends libebl libdwelf libdwfl libdw \<br>
>> +-        libasm src po doc tests<br>
>> ++        libasm<br>
>><br>
>> - EXTRA_DIST = elfutils.spec GPG-KEY NOTES CONTRIBUTING \<br>
>> -            COPYING COPYING-GPLV2 COPYING-LGPLV3<br>
>> + if DEBUGINFOD<br>
>> + SUBDIRS += debuginfod<br>
>> diff --git a/package/libs/elfutils/patches/100-musl-compat.patch b/package/libs/elfutils/patches/100-musl-compat.patch<br>
>> index 109b7ece08..374e832d3f 100644<br>
>> --- a/package/libs/elfutils/patches/100-musl-compat.patch<br>
>> +++ b/package/libs/elfutils/patches/100-musl-compat.patch<br>
>> @@ -22,20 +22,9 @@ <a href="https://sourceware.org/bugzilla/show_bug.cgi?id=21002" rel="noreferrer" target="_blank">https://sourceware.org/bugzilla/show_bug.cgi?id=21002</a><br>
>>   #include <stddef.h><br>
>>   #include <stdint.h><br>
>>   #include <sys/param.h><br>
>> -@@ -38,6 +49,10 @@<br>
>> - #include <byteswap.h><br>
>> - #include <unistd.h><br>
>> -<br>
>> -+#ifndef __GLIBC__<br>
>> -+#define canonicalize_file_name(name) realpath(name,NULL)<br>
>> -+#endif<br>
>> -+<br>
>> - #if __BYTE_ORDER == __LITTLE_ENDIAN<br>
>> - # define LE32(n)      (n)<br>
>> - # define LE64(n)      (n)<br>
>>  --- a/libdw/libdw_alloc.c<br>
>>  +++ b/libdw/libdw_alloc.c<br>
>> -@@ -73,5 +73,5 @@ __attribute ((noreturn)) attribute_hidde<br>
>> +@@ -147,5 +147,5 @@ __attribute ((noreturn)) attribute_hidde<br>
>>   __libdw_oom (void)<br>
>>   {<br>
>>     while (1)<br>
>> @@ -44,12 +33,15 @@ <a href="https://sourceware.org/bugzilla/show_bug.cgi?id=21002" rel="noreferrer" target="_blank">https://sourceware.org/bugzilla/show_bug.cgi?id=21002</a><br>
>>   }<br>
>>  --- a/libdwfl/dwfl_error.c<br>
>>  +++ b/libdwfl/dwfl_error.c<br>
>> -@@ -154,7 +154,7 @@ dwfl_errmsg (int error)<br>
>> +@@ -154,7 +154,11 @@ dwfl_errmsg (int error)<br>
>>     switch (error &~ 0xffff)<br>
>>       {<br>
>>       case OTHER_ERROR (ERRNO):<br>
>> --      return strerror_r (error & 0xffff, "bad", 0);<br>
>> -+      return strerror_l (error & 0xffff, LC_GLOBAL_LOCALE);<br>
>> ++#if defined(__GLIBC__) && !defined(__UCLIBC__)<br>
>> +       return strerror_r (error & 0xffff, "bad", 0);<br>
><br>
><br>
> According to GNU documentation, this call uses insufficient buffer size (buflen is 0), so it should lead to error ERANGE. Moreover, supplying fixed string as a buffer does not look correct, so I doubt this does anything useful.<br>
All I know is, this code is writteb with glibc in mind.<br></blockquote><div><br></div><div>I checked glibc sources and it either returns address of glibc error message (from a static table), or tries to fill the buffer with “Unknown error N” if there is enough space (in this case it just returns pointer to the “bad” string without modifying it). So fine for me.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
><br>
> Regards,<br>
> Oldrich.<br>
><br>
</blockquote></div></div>