Opened 2 years ago

Closed 2 years ago

Last modified 2 years ago

#66197 closed defect (wontfix)

defect: arm-none-eabi-gdb won't install on arm64 Macs

Reported by: the80srobot (Adam Sindelar) Owned by:
Priority: Normal Milestone:
Component: ports Version: 2.8.0
Keywords: upstream Cc: judaew (Vadym-Valdis Yudaiev)
Port: arm-none-eabi-gdb

Description

Installing arm-none-eabi-gdb on an M1 Mac doesn't get past the dependency check. It looks to me like the port insists on being x86_64, as do some other ports (see below). The problem is, one of the port's dependencies insists on being arm64?

This definitely seems like a bug - I promise I didn't do anything weird.

> sudo port -v install arm-none-eabi-gdb --helpport clean
--->  Computing dependencies for arm-none-eabi-gdb.
Error: Cannot install arm-none-eabi-gdb for the arch 'x86_64' because
Error: its dependency arm-none-eabi-gcc does not build for the required arch by default
Error: and does not have a universal variant.
Error: Follow https://guide.macports.org/#project.tickets if you believe there is a bug.
Error: Processing of port arm-none-eabi-gdb failed

build_arch is set:

> grep build_arch /opt/local/etc/macports/macports.conf
#build_arch          	x86_64
build_arch arm64

System is arm64:

> uname -a
Darwin vroom.fritz.box 21.5.0 Darwin Kernel Version 21.5.0: Tue Apr 26 21:08:37 PDT 2022; root:xnu-8020.121.3~4/RELEASE_ARM64_T6000 arm64

Other ports correctly install as arm64, except some weirdo ports:

> file /opt/local/bin/* | perl -pe 's/^.*:\s+//' | sort | uniq -c
   2 - Mach-O 64-bit executable arm64]
   2 - Mach-O 64-bit executable x86_64] [arm64:Mach-O 64-bit executable arm64
   1 Bourne-Again shell script text executable, ASCII text
 424 Mach-O 64-bit executable arm64
  27 Mach-O 64-bit executable x86_64
  69 POSIX shell script text executable, ASCII text
   1 POSIX shell script text executable, ASCII text, with very long lines (318), with escape sequences
   1 POSIX shell script text executable, ASCII text, with very long lines (399)
   1 POSIX shell script text executable, ASCII text, with very long lines (492)
   1 POSIX shell script text executable, ASCII text, with very long lines (593)
   1 POSIX shell script text executable, ASCII text, with very long lines (818)
   1 POSIX shell script text executable, ASCII text, with very long lines (887)
   1 POSIX shell script text executable, Unicode text, UTF-8 text
  37 Perl script text executable
   1 Perl5 module source text, ASCII text
   1 Python script text executable, ASCII text
   2 [x86_64:Mach-O 64-bit executable x86_64
  24 [x86_64:Mach-O 64-bit executable x86_64Mach-O 64-bit executable x86_64] [arm64:Mach-O 64-bit executable arm64Mach-O 64-bit executable arm64]
   1 a  /usr/bin/env /opt/local/bin/python3.10 script text executable, ASCII text
   1 a  /usr/bin/env sh script text executable, ASCII text, with escape sequences
   8 a /opt/local/Library/Frameworks/Python.framework/Versions/3.10/bin/python3.10 script text executable, ASCII text
  21 a /opt/local/bin/perl5.28 script text executable, ASCII text
  21 a /opt/local/bin/perl5.34 script text executable, ASCII text
   3 a /opt/local/bin/python3.10 script text executable, ASCII text
   4 a /opt/local/libexec/macports/bin/tclsh8.6 script text executable, ASCII text
   3 a /usr/bin/env /opt/local/bin/python3.10 script text executable, ASCII text
   1 a /usr/bin/env wish script text executable, ISO-8859 text
   1 setgid Mach-O 64-bit executable arm64
   4 setuid Mach-O 64-bit executable arm64
   3 setuid, setgid Mach-O 64-bit executable arm64

What are those weirdo ports you ask?

> file /opt/local/bin/* | grep x86_64 | grep -vi arm64
/opt/local/bin/captoinfo (for architecture x86_64):	Mach-O 64-bit executable x86_64
/opt/local/bin/clear (for architecture x86_64):	Mach-O 64-bit executable x86_64
/opt/local/bin/daemondo:                 Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit executable x86_64
/opt/local/bin/daemondo (for architecture x86_64):	Mach-O 64-bit executable x86_64
/opt/local/bin/envsubst (for architecture x86_64):	Mach-O 64-bit executable x86_64
/opt/local/bin/gettext (for architecture x86_64):	Mach-O 64-bit executable x86_64
/opt/local/bin/ggdb:                     Mach-O 64-bit executable x86_64
/opt/local/bin/iconv (for architecture x86_64):	Mach-O 64-bit executable x86_64
/opt/local/bin/infocmp (for architecture x86_64):	Mach-O 64-bit executable x86_64
/opt/local/bin/infotocap (for architecture x86_64):	Mach-O 64-bit executable x86_64
/opt/local/bin/lzcat (for architecture x86_64):	Mach-O 64-bit executable x86_64
/opt/local/bin/lzma (for architecture x86_64):	Mach-O 64-bit executable x86_64
/opt/local/bin/lzmadec (for architecture x86_64):	Mach-O 64-bit executable x86_64
/opt/local/bin/lzmainfo (for architecture x86_64):	Mach-O 64-bit executable x86_64
/opt/local/bin/ngettext (for architecture x86_64):	Mach-O 64-bit executable x86_64
/opt/local/bin/port-tclsh:               Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit executable x86_64
/opt/local/bin/port-tclsh (for architecture x86_64):	Mach-O 64-bit executable x86_64
/opt/local/bin/reset (for architecture x86_64):	Mach-O 64-bit executable x86_64
/opt/local/bin/tabs (for architecture x86_64):	Mach-O 64-bit executable x86_64
/opt/local/bin/tic (for architecture x86_64):	Mach-O 64-bit executable x86_64
/opt/local/bin/toe (for architecture x86_64):	Mach-O 64-bit executable x86_64
/opt/local/bin/tput (for architecture x86_64):	Mach-O 64-bit executable x86_64
/opt/local/bin/tset (for architecture x86_64):	Mach-O 64-bit executable x86_64
/opt/local/bin/unlzma (for architecture x86_64):	Mach-O 64-bit executable x86_64
/opt/local/bin/unxz (for architecture x86_64):	Mach-O 64-bit executable x86_64
/opt/local/bin/xmlwf (for architecture x86_64):	Mach-O 64-bit executable x86_64
/opt/local/bin/xz (for architecture x86_64):	Mach-O 64-bit executable x86_64
/opt/local/bin/xzcat (for architecture x86_64):	Mach-O 64-bit executable x86_64
/opt/local/bin/xzdec (for architecture x86_64):	Mach-O 64-bit executable x86_64

Change History (3)

comment:1 Changed 2 years ago by the80srobot (Adam Sindelar)

GDB doesn't support arm64 (https://inbox.sourceware.org/gdb/3185c3b8-8a91-4beb-a5d5-9db6afb93713@Spark/)

Oops and sorry, please feel free to close without elaborating.

comment:2 Changed 2 years ago by jmroot (Joshua Root)

Cc: judaew added
Keywords: upstream added
Resolution: wontfix
Status: newclosed

Right, so this is more of a "can't fix" than a "won't fix".

The cross gdb ports set their allowed architectures accordingly: https://github.com/macports/macports-ports/blob/master/_resources/port1.0/group/crossgdb-1.0.tcl#L122-L123

comment:3 Changed 2 years ago by Vadym-Valdis Yudaiev <judaew@…>

In 91ba15d7a2cfd46815054e0691712fa17bfaf4dd/macports-ports (master):

crossgdb PG: Add comment

See #66197

Note: See TracTickets for help on using tickets.