galeb-mkfiles

Извори пакета за Галеб
Дневник | Датотеке | Референце | ПРОЧИТАЈМЕ | ЛИЦЕНЦА

чување e8d4435fbf0936e94fe37367328ad084808ae104
родитељ 6dd82d59e5b585bd09c3a3ed55d26d0e5c797503
Аутор: Страхиња Радић <contact@strahinja.org>
Датум:   Fri, 26 Aug 2022 22:07:01 +0200

Add gdb

Signed-off-by: Страхиња Радић <contact@strahinja.org>

Diffstat:
MTODO | 10+++++-----
Agdb/config.mk | 5+++++
Agdb/mkfile | 61+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Agdb/pat/configure-none-required.patch | 25+++++++++++++++++++++++++
Agdb/pat/musl-signals.patch | 16++++++++++++++++
Agdb/pat/ppc-musl.patch | 93+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Agdb/pat/ppc-ptregs.patch | 10++++++++++
Agdb/pat/s390x-use-elf-gdb_fpregset_t.patch | 150+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
измењених датотека: 8, додавања: 365(+), брисања: 5(-)

diff --git a/TODO b/TODO @@ -20,17 +20,17 @@ TODO [ ] Try with S-nail (mailx) for now; all the dependencies above are then not needed -[ ] Add gdb! - [ ] Add patches - [ ] https://www.mail-archive.com/debian-bugs-dist@lists.debian.org/ - msg1824486.html - [ ] Add X (quite a task!) Done ---- +[x] Add gdb! + [x] Add patches + [x] https://www.mail-archive.com/debian-bugs-dist@lists.debian.org/ + msg1824486.html + [x] Investigate why is install sometimes incorrectly defined as ../install in Makefiles - Auto*hell crap; can be overridden by `make INSTALL=install install` diff --git a/gdb/config.mk b/gdb/config.mk @@ -0,0 +1,5 @@ +PKGBASE= gdb +PKGVER= 12.1 +LEGALFILES= COPYING COPYING.LIB COPYING3 COPYING3.LIB +PREFIX= /sucks +SRCTARBALLS= https://ftp.gnu.org/gnu/gdb/gdb-$PKGVER.tar.xz diff --git a/gdb/mkfile b/gdb/mkfile @@ -0,0 +1,61 @@ +mkpklib=/lib/mkpk +<$mkpklib/defaults.mk +<config.mk +<$mkpklib/derivatives.mk + +PKG= $PKGBASE-$PKGVER +BINDIR= $PREFIX/bin +MANDIR= $PREFIX/share/man +SYSCONFDIR= /etc +LOCALSTATEDIR= /var +CFLAGS= -Os -pipe -fPIC +LDFLAGS= -s -lterminfo + +$PKGBASE:QV: + for patch in $(find pat -type f | sort); do + if [ -e $patch.applied ]; then + continue + fi + printf " PATCH\t%s\n" "$patch" + patch -Np1 -i $patch || exit 1 + :>$patch.applied + done + if [ ! -d build ]; then + printf " MKDIR\tbuild\n" + mkdir build + fi + printf " CD\tbuild\n" + cd build + printf " CONF\t%s\n" --prefix=$PREFIX + CFLAGS=$CFLAGS LDFLAGS=$LDFLAGS \ + ../configure --prefix=$PREFIX \ + --with-system-readline \ + --disable-nls \ + --without-sdl \ + --disable-werror + printf " MAKE\n" + make + printf " CD\t-\n" + cd - >/dev/null + +install:QV: $PKGBASE install-legal + printf " CD\tbuild\n" + cd build + printf " MAKE\t%s\n" "DESTDIR=$(realpath ../$DESTDIR) install" + make DESTDIR=$(realpath ../$DESTDIR) install + printf " CD\t-\n" + cd - >/dev/null + +install-legal:QV: $PKGBASE + for legalfile in $LEGALFILES; do + printf " INST\t%s\n" "$legalfile" + $INSTALL -Dm0644 "$legalfile" $LEGALDIR/$legalfile + done + +clean:QV: + if [ -e Makefile ]; then + printf " MAKE\tclean\n" + make clean + fi + +<$mkpklib/package.mk diff --git a/gdb/pat/configure-none-required.patch b/gdb/pat/configure-none-required.patch @@ -0,0 +1,25 @@ +--- a/sim/configure 2022-05-01 20:46:32.000000000 +0200 ++++ b/sim/configure 2022-08-26 21:17:28.972287175 +0200 +@@ -13583,8 +13583,12 @@ + $as_echo "$ac_cv_search_tgetent" >&6; } + ac_res=$ac_cv_search_tgetent + if test "$ac_res" != no; then : +- test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" +- TERMCAP_LIB=$ac_cv_search_tgetent ++ if test "$ac_res" != "none required"; then ++ LIBS="$ac_res $LIBS" ++ TERMCAP_LIB=$ac_cv_search_tgetent ++ else ++ TERMCAP_LIB="" ++ fi + else + TERMCAP_LIB="" + fi +@@ -13645,7 +13649,6 @@ + + + +- + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 + $as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } diff --git a/gdb/pat/musl-signals.patch b/gdb/pat/musl-signals.patch @@ -0,0 +1,16 @@ +--- a/gdbsupport/signals.cc 2020-02-08 12:50:14.000000000 +0000 ++++ b/gdbsupport/signals.cc 2020-02-11 13:08:56.482694697 +0000 +@@ -31,6 +31,13 @@ + _available_ realtime signal, not the lowest supported; glibc takes + several for its own use. */ + ++#ifndef __SIGRTMIN ++# define __SIGRTMIN 32 ++#endif ++#ifndef __SIGRTMAX ++# define __SIGRTMAX _NSIG ++#endif ++ + #ifndef REALTIME_LO + # if defined(__SIGRTMIN) + # define REALTIME_LO __SIGRTMIN diff --git a/gdb/pat/ppc-musl.patch b/gdb/pat/ppc-musl.patch @@ -0,0 +1,93 @@ +--- a/nat/ppc-linux.h ++++ b/nat/ppc-linux.h +@@ -18,7 +18,90 @@ + #ifndef PPC_LINUX_H + #define PPC_LINUX_H 1 + ++#if defined(__GLIBC__) || defined(__UCLIBC__) + #include <asm/ptrace.h> ++#else // Musl ++// Do not include ptrace.h from Linux headers and since ++// Musl does not define PT_*, define them: ++ ++#define PT_R0 0 ++#define PT_R1 1 ++#define PT_R2 2 ++#define PT_R3 3 ++#define PT_R4 4 ++#define PT_R5 5 ++#define PT_R6 6 ++#define PT_R7 7 ++#define PT_R8 8 ++#define PT_R9 9 ++#define PT_R10 10 ++#define PT_R11 11 ++#define PT_R12 12 ++#define PT_R13 13 ++#define PT_R14 14 ++#define PT_R15 15 ++#define PT_R16 16 ++#define PT_R17 17 ++#define PT_R18 18 ++#define PT_R19 19 ++#define PT_R20 20 ++#define PT_R21 21 ++#define PT_R22 22 ++#define PT_R23 23 ++#define PT_R24 24 ++#define PT_R25 25 ++#define PT_R26 26 ++#define PT_R27 27 ++#define PT_R28 28 ++#define PT_R29 29 ++#define PT_R30 30 ++#define PT_R31 31 ++ ++#define PT_NIP 32 ++#define PT_MSR 33 ++#define PT_ORIG_R3 34 ++#define PT_CTR 35 ++#define PT_LNK 36 ++#define PT_XER 37 ++#define PT_CCR 38 ++#ifndef __powerpc64__ ++#define PT_MQ 39 ++#else ++#define PT_SOFTE 39 ++#endif ++#define PT_TRAP 40 ++#define PT_DAR 41 ++#define PT_DSISR 42 ++#define PT_RESULT 43 ++#define PT_DSCR 44 ++#define PT_REGS_COUNT 44 ++ ++#define PT_FPR0 48 /* each FP reg occupies 2 slots in this space */ ++ ++#ifndef __powerpc64__ ++ ++#define PT_FPR31 (PT_FPR0 + 2*31) ++#define PT_FPSCR (PT_FPR0 + 2*32 + 1) ++ ++#else /* __powerpc64__ */ ++ ++#define PT_FPSCR (PT_FPR0 + 32) /* each FP reg occupies 1 slot in 64-bit space */ ++ ++ ++#define PT_VR0 82 /* each Vector reg occupies 2 slots in 64-bit */ ++#define PT_VSCR (PT_VR0 + 32*2 + 1) ++#define PT_VRSAVE (PT_VR0 + 33*2) ++ ++ ++/* ++ * Only store first 32 VSRs here. The second 32 VSRs in VR0-31 ++ */ ++#define PT_VSR0 150 /* each VSR reg occupies 2 slots in 64-bit */ ++#define PT_VSR31 (PT_VSR0 + 2*31) ++#endif /* __powerpc64__ */ ++ ++#endif // Libc ++ + #include <asm/cputable.h> + + /* This sometimes isn't defined. */ diff --git a/gdb/pat/ppc-ptregs.patch b/gdb/pat/ppc-ptregs.patch @@ -0,0 +1,10 @@ +--- a/gdbserver/linux-ppc-low.cc ++++ b/gdbserver/linux-ppc-low.cc +@@ -21,7 +21,6 @@ + #include "linux-low.h" + + #include <elf.h> +-#include <asm/ptrace.h> + + #include "nat/ppc-linux.h" + #include "linux-ppc-tdesc.h" diff --git a/gdb/pat/s390x-use-elf-gdb_fpregset_t.patch b/gdb/pat/s390x-use-elf-gdb_fpregset_t.patch @@ -0,0 +1,150 @@ +The s390 versions of fill_gregset / supply_gregset and fill_fpregset / +supply_fpregset declare the data structure to be filled or supplied from +as gregset_t and fpregset_t, respectively, instead of gdb_gregset_t and +gdb_fpregset_t. This is incompatible with the declaration of these +functions in gregset.h. +gdb/ChangeLog: + + * s390-linux-nat.c (supply_gregset, fill_gregset, fetch_regs) + (store_regs): Replace gregset_t by gdb_gregset_t. + (supply_fpregset, fill_fpregset, fetch_fpregs, store_fpregs): + Replace fpregset_t by gdb_fpregset_t. +Credit to Andreas Arnez at IBM + +--- + +diff --git a/gdb/s390-linux-nat.c b/gdb/s390-linux-nat.c +index 2c60562..c48a35a 100644 +--- a/gdb/s390-linux-nat.c ++++ b/gdb/s390-linux-nat.c +@@ -153,7 +153,7 @@ static s390_linux_nat_target the_s390_linux_nat_target; + make them look like 32-bit registers. */ + + void +-supply_gregset (struct regcache *regcache, const gregset_t *regp) ++supply_gregset (struct regcache *regcache, const gdb_gregset_t *regp) + { + #ifdef __s390x__ + struct gdbarch *gdbarch = regcache->arch (); +@@ -164,7 +164,7 @@ supply_gregset (struct regcache *regcache, const gregset_t *regp) + gdb_byte buf[4]; + + regcache_supply_regset (&s390_64_gregset, regcache, -1, +- regp, sizeof (gregset_t)); ++ regp, sizeof (gdb_gregset_t)); + pswm = extract_unsigned_integer ((const gdb_byte *) regp + + S390_PSWM_OFFSET, 8, byte_order); + pswa = extract_unsigned_integer ((const gdb_byte *) regp +@@ -179,7 +179,7 @@ supply_gregset (struct regcache *regcache, const gregset_t *regp) + #endif + + regcache_supply_regset (&s390_gregset, regcache, -1, regp, +- sizeof (gregset_t)); ++ sizeof (gdb_gregset_t)); + } + + /* Fill register REGNO (if it is a general-purpose register) in +@@ -187,14 +187,14 @@ supply_gregset (struct regcache *regcache, const gregset_t *regp) + do this for all registers. */ + + void +-fill_gregset (const struct regcache *regcache, gregset_t *regp, int regno) ++fill_gregset (const struct regcache *regcache, gdb_gregset_t *regp, int regno) + { + #ifdef __s390x__ + struct gdbarch *gdbarch = regcache->arch (); + if (gdbarch_ptr_bit (gdbarch) == 32) + { + regcache_collect_regset (&s390_64_gregset, regcache, regno, +- regp, sizeof (gregset_t)); ++ regp, sizeof (gdb_gregset_t)); + + if (regno == -1 + || regno == S390_PSWM_REGNUM || regno == S390_PSWA_REGNUM) +@@ -231,26 +231,27 @@ fill_gregset (const struct regcache *regcache, gregset_t *regp, int regno) + #endif + + regcache_collect_regset (&s390_gregset, regcache, regno, regp, +- sizeof (gregset_t)); ++ sizeof (gdb_gregset_t)); + } + + /* Fill GDB's register array with the floating-point register values + in *REGP. */ + void +-supply_fpregset (struct regcache *regcache, const fpregset_t *regp) ++supply_fpregset (struct regcache *regcache, const gdb_fpregset_t *regp) + { + regcache_supply_regset (&s390_fpregset, regcache, -1, regp, +- sizeof (fpregset_t)); ++ sizeof (gdb_fpregset_t)); + } + + /* Fill register REGNO (if it is a general-purpose register) in + *REGP with the value in GDB's register array. If REGNO is -1, + do this for all registers. */ + void +-fill_fpregset (const struct regcache *regcache, fpregset_t *regp, int regno) ++fill_fpregset (const struct regcache *regcache, gdb_fpregset_t *regp, ++ int regno) + { + regcache_collect_regset (&s390_fpregset, regcache, regno, regp, +- sizeof (fpregset_t)); ++ sizeof (gdb_fpregset_t)); + } + + /* Find the TID for the current inferior thread to use with ptrace. */ +@@ -270,7 +271,7 @@ s390_inferior_tid (void) + static void + fetch_regs (struct regcache *regcache, int tid) + { +- gregset_t regs; ++ gdb_gregset_t regs; + ptrace_area parea; + + parea.len = sizeof (regs); +@@ -279,7 +280,7 @@ fetch_regs (struct regcache *regcache, int tid) + if (ptrace (PTRACE_PEEKUSR_AREA, tid, (long) &parea, 0) < 0) + perror_with_name (_("Couldn't get registers")); + +- supply_gregset (regcache, (const gregset_t *) &regs); ++ supply_gregset (regcache, (const gdb_gregset_t *) &regs); + } + + /* Store all valid general-purpose registers in GDB's register cache +@@ -287,7 +288,7 @@ fetch_regs (struct regcache *regcache, int tid) + static void + store_regs (const struct regcache *regcache, int tid, int regnum) + { +- gregset_t regs; ++ gdb_gregset_t regs; + ptrace_area parea; + + parea.len = sizeof (regs); +@@ -307,7 +308,7 @@ store_regs (const struct regcache *regcache, int tid, int regnum) + static void + fetch_fpregs (struct regcache *regcache, int tid) + { +- fpregset_t fpregs; ++ gdb_fpregset_t fpregs; + ptrace_area parea; + + parea.len = sizeof (fpregs); +@@ -316,7 +317,7 @@ fetch_fpregs (struct regcache *regcache, int tid) + if (ptrace (PTRACE_PEEKUSR_AREA, tid, (long) &parea, 0) < 0) + perror_with_name (_("Couldn't get floating point status")); + +- supply_fpregset (regcache, (const fpregset_t *) &fpregs); ++ supply_fpregset (regcache, (const gdb_fpregset_t *) &fpregs); + } + + /* Store all valid floating-point registers in GDB's register cache +@@ -324,7 +325,7 @@ fetch_fpregs (struct regcache *regcache, int tid) + static void + store_fpregs (const struct regcache *regcache, int tid, int regnum) + { +- fpregset_t fpregs; ++ gdb_fpregset_t fpregs; + ptrace_area parea; + + parea.len = sizeof (fpregs);