| 1 |  | # Copyright 1999-2024 Gentoo Authors | 
  |  | 1 | # Copyright 1999-2025 Gentoo Authors | 
  | 2 | 2 | # Distributed under the terms of the GNU General Public License v2 | 
  | 3 | 3 |  | 
  | 4 | 4 | EAPI=8 | 
  | 5 | 5 |  | 
  | 6 |  | PYTHON_COMPAT=( python3_{10..12} ) | 
  |  | 6 | PYTHON_COMPAT=( python3_{10..13} ) | 
  | 7 | 7 |  | 
  | 8 | 8 | inherit toolchain-funcs python-any-r1 | 
  | 9 | 9 |  | 
| ... | ... |  | 
  | 17 | 17 | 	inherit git-r3 | 
  | 18 | 18 | else | 
  | 19 | 19 | 	SRC_URI="https://www.seabios.org/downloads/${P}.tar.gz" | 
  | 20 |  | 	KEYWORDS="~alpha amd64 arm64 ~loong ~m68k ~mips ~ppc ppc64 x86" | 
  |  | 20 | 	KEYWORDS="~alpha amd64 arm64 ~loong ~m68k ~mips ppc ppc64 x86" | 
  | 21 | 21 | fi | 
  | 22 | 22 |  | 
  | 23 | 23 | DESCRIPTION="Open Source implementation of a 16-bit x86 BIOS" | 
| ... | ... |  | 
  | 28 | 28 | IUSE="debug +seavgabios" | 
  | 29 | 29 |  | 
  | 30 | 30 | BDEPEND=" | 
  |  | 31 | 	sys-devel/gcc:* | 
  | 31 | 32 | 	>=sys-power/iasl-20060912 | 
  | 32 | 33 | 	${PYTHON_DEPS}" | 
  | 33 | 34 | RDEPEND="!sys-firmware/seabios-bin" | 
| ... | ... |  | 
  | 52 | 53 | } | 
  | 53 | 54 |  | 
  | 54 | 55 | pkg_pretend() { | 
  | 55 |  | 	ewarn "You have decided to compile your own SeaBIOS. This is not" | 
  | 56 |  | 	ewarn "supported by upstream unless you use their recommended" | 
  | 57 |  | 	ewarn "toolchain (which you are not)." | 
  | 58 |  | 	elog | 
  | 59 |  | 	ewarn "If you are intending to use this build with QEMU, realize" | 
  | 60 |  | 	ewarn "you will not receive any support if you have compiled your" | 
  | 61 |  | 	ewarn "own SeaBIOS. Virtual machines subtly fail based on changes" | 
  | 62 |  | 	ewarn "in SeaBIOS." | 
  |  | 56 | 	ewarn "You have decided to compile your own SeaBIOS. This may cause subtle" | 
  |  | 57 | 	ewarn "failures at runtime. Please try sys-firmware/seabios-bin before" | 
  |  | 58 | 	ewarn "requesting support from Gentoo or upstream." | 
  |  | 59 |  | 
  | 63 | 60 | 	if [[ -z "$(choose_target_chost)" ]]; then | 
  | 64 | 61 | 		elog | 
  | 65 | 62 | 		eerror "Before you can compile ${PN}, you need to install a x86 cross-compiler" | 
| ... | ... |  | 
  | 75 | 72 |  | 
  | 76 | 73 | 	# Ensure precompiled iasl files are never used | 
  | 77 | 74 | 	find "${WORKDIR}" -name '*.hex' -delete || die | 
  |  | 75 |  | 
  |  | 76 | 	# Force gcc because build failed with clang, #887115 | 
  |  | 77 | 	if ! tc-is-gcc ; then | 
  |  | 78 | 		ewarn "seabios can be built with gcc only." | 
  |  | 79 | 		ewarn "Ignoring CC=$(tc-getCC) and forcing ${CHOST}-gcc" | 
  |  | 80 | 		export CC=${CHOST}-gcc | 
  |  | 81 | 		export CXX=${CHOST}-g++ | 
  |  | 82 | 		tc-is-gcc || die "tc-is-gcc failed in spite of CC=${CC}" | 
  |  | 83 | 	fi | 
  | 78 | 84 | } | 
  | 79 | 85 |  | 
  | 80 | 86 | src_configure() { | 
  | 81 |  | 	tc-ld-disable-gold #438058 | 
  |  | 87 | 	tc-ld-force-bfd #438058 | 
  | 82 | 88 |  | 
  | 83 | 89 | 	if use debug ; then | 
  | 84 | 90 | 		echo "CONFIG_DEBUG_LEVEL=8" >.config |