nativeos / homebrew-i386-elf-toolchain

Homebrew formulas for buildling a valid GCC toolchain for the i386-elf target.
86 stars 18 forks source link

Conflict with homebrew/core #21

Open Kyle-Ye opened 2 years ago

Kyle-Ye commented 2 years ago

Description

Since homebrew treat "i386-elf-binutils" as an old and deprecated name for "x86_64-elf-binutils", there is some confusion for homebrew if we install both x86_64-elf-binutils and nativeos/i386-elf-toolchain/i386-elf-binutils

How to reproduce

At first I do the following, and everything is OK.

brew install x86_64-elf-binutils
brew install x86_64-elf-gcc
brew tap nativeos/i386-elf-toolchain
brew install nativeos/i386-elf-toolchain/i386-elf-binutils
brew install nativeos/i386-elf-toolchain/i386-elf-gcc

Then when I try to do brew install nativeos/i386-elf-toolchain/i386-elf-gdb, it gives me the following error

Error: x86_64-elf-binutils from homebrew/core is given, but old name i386-elf-binutils was installed from nativeos/i386-elf-toolchain.
Please try to use fully-qualified nativeos/i386-elf-toolchain/i386-elf-binutils to refer to the formula.
To force migration, run:
  brew migrate --force i386-elf-binutils
Error: undefined method `core_tap?' for nil:NilClass

Full log

Though homebrew gives error about it, I can still successfully install gdb.

➜  Linux-0.11 git:(master) ✗ brew install nativeos/i386-elf-toolchain/i386-elf-gdb
Running `brew update --preinstall`...
==> Auto-updated Homebrew!
Updated 1 tap (homebrew/core).
==> Updated Formulae
Updated 1 formula.
Error: x86_64-elf-binutils from homebrew/core is given, but old name i386-elf-binutils was installed from nativeos/i386-elf-toolchain.
Please try to use fully-qualified nativeos/i386-elf-toolchain/i386-elf-binutils to refer to the formula.
To force migration, run:
  brew migrate --force i386-elf-binutils
Error: undefined method `core_tap?' for nil:NilClass

==> Downloading https://ftp.gnu.org/gnu/gdb/gdb-10.2.tar.xz
######################################################################## 100.0%
==> Installing i386-elf-gdb from nativeos/i386-elf-toolchain
==> ./configure --prefix=/opt/homebrew/Cellar/i386-elf-gdb/10.2_2 --target=i386-elf --pro
==> make
==> make install
🍺  /opt/homebrew/Cellar/i386-elf-gdb/10.2_2: 31 files, 7.7MB, built in 2 minutes 34 seconds
==> Running `brew cleanup i386-elf-gdb`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).
danirod commented 2 years ago

I'll have a look on it. I've already namespaced binutils and gcc but I still haven't checked that gdb and grub are up to date and namespaced.

anta40 commented 10 months ago

Just experienced this: I need to build a project which requires x86_64-elf-gcc, so I installed it. Then build another project which required i386-elf-gcc... somehow it conflicted with x86_64-elf gcc so got automatically removed.