mirror of
https://github.com/dslm4515/BMLFS.git
synced 2025-07-25 17:11:16 +00:00
igt-gpu-tools requires libdw from elfutils
This commit is contained in:
81
build-scripts/elfutils.build
Normal file
81
build-scripts/elfutils.build
Normal 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/*
|
27
files/elfutils-alpine/error.h
Normal file
27
files/elfutils-alpine/error.h
Normal 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_ */
|
14
patches/elfutils-alpine/fix-aarch64_fregs.patch
Normal file
14
patches/elfutils-alpine/fix-aarch64_fregs.patch
Normal 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;
|
17
patches/elfutils-alpine/fix-uninitialized.patch
Normal file
17
patches/elfutils-alpine/fix-uninitialized.patch
Normal 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))
|
||||
{
|
10
patches/elfutils-alpine/musl-asm-ptrace-h.patch
Normal file
10
patches/elfutils-alpine/musl-asm-ptrace-h.patch
Normal 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
|
87
patches/elfutils-alpine/musl-macros.patch
Normal file
87
patches/elfutils-alpine/musl-macros.patch
Normal 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. */
|
18
patches/elfutils-alpine/musl-strndupa.patch
Normal file
18
patches/elfutils-alpine/musl-strndupa.patch
Normal 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;
|
||||
|
Reference in New Issue
Block a user