igt-gpu-tools requires libdw from elfutils

This commit is contained in:
dslm4515
2022-02-06 03:06:10 -06:00
parent c414a228bd
commit 0d65172678
7 changed files with 254 additions and 0 deletions

View File

@ -0,0 +1,81 @@
#! /bin/bash
# elfutils
# Source: https://sourceware.org/elfutils/ftp/0.186/elfutils-0.186.tar.bz2
#
# $BUILD = Directory to temporarily install
# $PKGS = Directory to store built packages
#
# DEPS
# Required: NONE
# Recommended: NONE
# Optional: NONE
patch -Np1 -i ../patches/elfutils-alpine/fix-aarch64_fregs.patch
patch -Np1 -i ../patches/elfutils-alpine/fix-uninitialized.patch
patch -Np1 -i ../patches/elfutils-alpine/musl-asm-ptrace-h.patch
patch -Np1 -i ../patches/elfutils-alpine/musl-macros.patch
patch -Np1 -i ../patches/elfutils-alpine/musl-strndupa.patch
cp -v ../files/elfutils-alpine/error.h src/
cp -v ../files/elfutils-alpine/error.h lib/
cat > lib/libintl.h <<-EOF
#ifndef LIBINTL_H
#define LIBINTL_H
#define _(x) (x)
#endif
EOF
CFLAGS="$CFLAGS -Wno-error -Wno-null-dereference" \
./configure --prefix=/usr \
--sysconfdir=/etc \
--mandir=/usr/share/man \
--localstatedir=/var \
--disable-werror \
--program-prefix=eu- \
--enable-deterministic-archives \
--disable-nls \
--disable-libdebuginfod \
--disable-debuginfo \
--disable-debuginfod
read -p "Compile?" && make -j2 &&
sudo -S make DESTDIR=$BUILD install &&
sudo -S mkdir -pv /BMAN/install /BMAN/usr && \
sudo -S mv $BUILD/usr/share /BMAN/usr/ && \
cd $BUILD && sudo -S mkdir -v ${BUILD}/install &&
cat > /tmp/slack-desc << "EOF"
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description. Line
# up the first '|' above the ':' following the base package name, and the '|'
# on the right side marks the last column you can put a character in. You must
# make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':' except on otherwise blank lines.
|-----handy-ruler------------------------------------------------------|
elfutils: Elfutils
elfutils:
elfutils: A collection of utilities, including stack (to show backtraces), nm
elfutils: (for listing symbols from object files), size (for listing the section
elfutils: sizes of an object or archive file), strip (for discarding symbols),
elfutils: readelf (to see the raw ELF file structures), and elflint (to check
elfutils: for well-formed ELF files).
elfutils:
elfutils: ftp://sourceware.org/pub/elfutils/
elfutils:
EOF
sudo -S mv -v /tmp/slack-desc install/ &&
sudo -S makepkg -l y -c n $PKGS/elfutils-0.186-$(uname -m)-mlfs.txz && \
cd /BMAN && \
cat > /tmp/slack-desc << "EOF"
elfutils-doc: Manuals for Elfutils
elfutils-doc:
elfutils-doc: A collection of utilities for checking and testing ELF files
elfutils-doc:
elfutils-doc: ftp://sourceware.org/pub/elfutils/
elfutils-doc:
EOF
sudo -S mv -v /tmp/slack-desc install/ &&
sudo -S makepkg -l y -c n $PKGS/elfutils-doc-0.186-noarch-mlfs.txz && \
sudo -S rm -rf ${BUILD}/* /BMAN/*

View File

@ -0,0 +1,27 @@
#ifndef _ERROR_H_
#define _ERROR_H_
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
static unsigned int error_message_count = 0;
static inline void error(int status, int errnum, const char* format, ...)
{
va_list ap;
fprintf(stderr, "%s: ", program_invocation_name);
va_start(ap, format);
vfprintf(stderr, format, ap);
va_end(ap);
if (errnum)
fprintf(stderr, ": %s", strerror(errnum));
fprintf(stderr, "\n");
error_message_count++;
if (status)
exit(status);
}
#endif /* _ERROR_H_ */

View File

@ -0,0 +1,14 @@
It looks like fregs.vregs[] is an array of double?
Casting to Dwarf_Word instead of & 0xFFFFFFF should do.
--- a/backends/aarch64_initreg.c 2015-11-27 14:36:29.000000000 +0100
+++ b/backends/aarch64_initreg.c 2016-08-09 03:47:25.428560159 +0200
@@ -82,7 +82,7 @@
Dwarf_Word dwarf_fregs[32];
for (int r = 0; r < 32; r++)
- dwarf_fregs[r] = fregs.vregs[r] & 0xFFFFFFFF;
+ dwarf_fregs[r] = (Dwarf_Word)fregs.vregs[r];
if (! setfunc (64, 32, dwarf_fregs, arg))
return false;

View File

@ -0,0 +1,17 @@
--- a/libcpu/i386_disasm.c 2015-08-21 14:22:37.000000000 +0200
+++ b/libcpu/i386_disasm.c 2015-11-20 06:30:59.250629957 +0100
@@ -1,4 +1,4 @@
-/* Disassembler for x86.
+/* Disassembler for x86.
Copyright (C) 2007, 2008, 2009, 2011 Red Hat, Inc.
This file is part of elfutils.
Written by Ulrich Drepper <drepper@redhat.com>, 2007.
@@ -710,6 +710,7 @@
case 'm':
/* Mnemonic. */
+ str = mnebuf;
if (unlikely (instrtab[cnt].mnemonic == MNE_INVALID))
{

View File

@ -0,0 +1,10 @@
--- a/backends/ppc_initreg.c 2019-11-26 23:48:42.000000000 +0100
+++ b/backends/ppc_initreg.c 2019-12-08 16:57:58.334872602 +0100
@@ -32,6 +32,7 @@
#include <stdlib.h>
#if defined(__powerpc__) && defined(__linux__)
+# include <asm/ptrace.h>
# include <sys/ptrace.h>
# include <sys/user.h>
#endif

View File

@ -0,0 +1,87 @@
--- a/src/arlib.h 2015-08-21 14:22:37.000000000 +0200
+++ b/src/arlib.h 2015-11-20 08:02:55.153199611 +0100
@@ -29,6 +29,16 @@
#include <stdint.h>
#include <sys/types.h>
+#if !defined(ACCESSPERMS)
+# define ACCESSPERMS (S_IRWXU|S_IRWXG|S_IRWXO) /* 0777 */
+#endif
+#if !defined(ALLPERMS)
+# define ALLPERMS (S_ISUID|S_ISGID|S_ISVTX|S_IRWXU|S_IRWXG|S_IRWXO) /* 07777 */
+#endif
+#if !defined(DEFFILEMODE)
+# define DEFFILEMODE (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH)/* 0666*/
+#endif
+
/* State of -D/-U flags. */
extern bool arlib_deterministic_output;
--- a/src/elfcompress.c.orig 2016-04-02 12:51:26.903848894 +0200
+++ b/src/elfcompress.c 2016-04-02 12:55:15.076996338 +0200
@@ -35,6 +35,14 @@
#include <gelf.h>
#include "system.h"
+#if !defined(FNM_EXTMATCH)
+# define FNM_EXTMATCH 0
+#endif
+
+#if !defined(ALLPERMS)
+# define ALLPERMS (S_ISUID|S_ISGID|S_ISVTX|S_IRWXU|S_IRWXG|S_IRWXO) /* 07777 */
+#endif
+
/* Name and version of program. */
static void print_version (FILE *stream, struct argp_state *state);
ARGP_PROGRAM_VERSION_HOOK_DEF = print_version;
diff --git a/lib/libeu.h b/lib/libeu.h
index 69fe3d7..e5c99b8 100644
--- a/lib/libeu.h
+++ b/lib/libeu.h
@@ -31,6 +31,27 @@
#include <stddef.h>
#include <stdint.h>
+#include <unistd.h>
+#include <alloca.h>
+#include <string.h>
+
+#ifndef TEMP_FAILURE_RETRY
+#define TEMP_FAILURE_RETRY(expression) \
+ (__extension__ \
+ ({ long int __result; \
+ do __result = (long int) (expression); \
+ while (__result == -1L && errno == EINTR); \
+ __result; }))
+#endif
+
+#ifndef strndupa
+#define strndupa(s, n) \
+ (__extension__ ({const char *__in = (s); \
+ size_t __len = strnlen (__in, (n)) + 1; \
+ char *__out = (char *) alloca (__len); \
+ __out[__len-1] = '\0'; \
+ (char *) memcpy (__out, __in, __len-1);}))
+#endif
extern void *xmalloc (size_t) __attribute__ ((__malloc__));
extern void *xcalloc (size_t, size_t) __attribute__ ((__malloc__));
diff --git a/src/strip.c b/src/strip.c
index 48792a7..d2f0c60 100644
--- a/src/strip.c
+++ b/src/strip.c
@@ -46,6 +46,14 @@
#include <system.h>
#include <printversion.h>
+#if !defined(FNM_EXTMATCH)
+# define FNM_EXTMATCH 0
+#endif
+
+#if !defined(ACCESSPERMS)
+#define ACCESSPERMS (S_IRWXU|S_IRWXG|S_IRWXO)
+#endif
+
typedef uint8_t GElf_Byte;
/* Name and version of program. */

View File

@ -0,0 +1,18 @@
--- a/src/unstrip.c.orig 2017-04-27 14:26:26.000000000 +0000
+++ b/src/unstrip.c 2017-05-05 15:51:33.515154220 +0000
@@ -56,6 +56,15 @@
# define _(str) gettext (str)
#endif
+#ifndef strndupa
+#define strndupa(s, n) \
+ (__extension__ ({const char *__in = (s); \
+ size_t __len = strnlen (__in, (n)) + 1; \
+ char *__out = (char *) alloca (__len); \
+ __out[__len-1] = '\0'; \
+ (char *) memcpy (__out, __in, __len-1);}))
+#endif
+
/* Name and version of program. */
ARGP_PROGRAM_VERSION_HOOK_DEF = print_version;