diff --git a/dev-embedded/sdcc/Manifest b/dev-embedded/sdcc/Manifest index 2460440..fe35598 100644 --- a/dev-embedded/sdcc/Manifest +++ b/dev-embedded/sdcc/Manifest @@ -4,18 +4,25 @@ AUX sdcc-4.3.2-override-override.patch 2178 BLAKE2B 7c60caeb0fb948230f7397b6da6b AUX sdcc-4.4.0-autoreconf-libiberty.patch 696 BLAKE2B 9dce6aca61d3d1f9229c1a13549a5584c48c28a19146215c24a97aebca5bb5c9f74517da2622ea3f86e19e8281fdcbe85a14f7a11fe036e877c1f6de7db5cad7 SHA512 a5408bc3913372327e3bae75cdc57e5765cd3369863fe9d92cd43f9fa6de1c2293ac647231391fda7f5ec0a3c1587a5b44dd228c25ee528da8d9c7b68f29de42 AUX sdcc-4.4.0-fix-binutils-dependency.patch 569 BLAKE2B 185f644a2c68c9eece5dc37cad9543a86688eea16e80c1ff1460020545404604c2d6870b6a6559b55e4259a3db51dd1ccfb8f2430d8dafffa56ed48bbe3248da SHA512 cd3f2a72c8e3ec5aae9e8473fc11ef8862134ebe9857fa176110918a89fbd8b6b8388533ae4877ade4746518e0d420afab5530c6cf3da6be93940a206e6befe7 AUX sdcc-4.4.0-fix-mkdir-autoconf-test.patch 395 BLAKE2B 5c509a0f7a4e201c03fd6c7fbed3c95287896acbbb733c7dbd8ae6d3dbd79bcbd795eeb020ef9c11910f01854a6b0746e82cdca6a372ed36c1dfc436562e83d5 SHA512 33184762ca7197eef5724f9c23dacc90081b5f320f773f30e844d1263d7e3b7f2e9812da5832772c56094d226617b12028ce152a1ce69d3156e06fd63af30d1a +AUX sdcc-4.5.0-autoreconf-libiberty.patch 696 BLAKE2B 9dce6aca61d3d1f9229c1a13549a5584c48c28a19146215c24a97aebca5bb5c9f74517da2622ea3f86e19e8281fdcbe85a14f7a11fe036e877c1f6de7db5cad7 SHA512 a5408bc3913372327e3bae75cdc57e5765cd3369863fe9d92cd43f9fa6de1c2293ac647231391fda7f5ec0a3c1587a5b44dd228c25ee528da8d9c7b68f29de42 +AUX sdcc-4.5.0-elf-fix.patch 498 BLAKE2B c9c0027a7bddfee8bffce4c5f3451dc7d67b7770f973160c080fb093486f0af66a77f6736c3930385f1c8c7d9bea88b4e657749cd73d8d816e4c3d373b5a7b1f SHA512 679b11c40a12ebadfa2ca655a9f33438cb3a0e6e316208b087dea3c1c22cf7eedf0152fe7d0909d571831dfc44f9477abd90595484f1c440eb757d2475ff70d8 +AUX sdcc-4.5.0-fix-binutils-dependency.patch 569 BLAKE2B 185f644a2c68c9eece5dc37cad9543a86688eea16e80c1ff1460020545404604c2d6870b6a6559b55e4259a3db51dd1ccfb8f2430d8dafffa56ed48bbe3248da SHA512 cd3f2a72c8e3ec5aae9e8473fc11ef8862134ebe9857fa176110918a89fbd8b6b8388533ae4877ade4746518e0d420afab5530c6cf3da6be93940a206e6befe7 +AUX sdcc-4.5.0-fix-mkdir-autoconf-test.patch 395 BLAKE2B 5c509a0f7a4e201c03fd6c7fbed3c95287896acbbb733c7dbd8ae6d3dbd79bcbd795eeb020ef9c11910f01854a6b0746e82cdca6a372ed36c1dfc436562e83d5 SHA512 33184762ca7197eef5724f9c23dacc90081b5f320f773f30e844d1263d7e3b7f2e9812da5832772c56094d226617b12028ce152a1ce69d3156e06fd63af30d1a DIST sdcc-doc-4.0.0.tar.bz2 980999 BLAKE2B 6f9478c095e6b4fec27c6ab7a10a8564ae46d754709848b3a7a26a7a2dfecd3833ce3cfe7a41f9033b5a34a1b6e962090d91c9688294dd347e1c98658761c019 SHA512 83bed77b46ad2f028725a3ffe6090d71185f73d4e99c241e7ebd1c509ba1be1911f4b9130c344fa4eb928f48122179b6b71e9d5a27d9f18ff74017c61fae77ff DIST sdcc-doc-4.1.0.tar.bz2 991207 BLAKE2B fd1ab82c8cc65031a8231bc4aba1e0562ed4b3178612a4d915568cb5600ba9159d89f905e261e860da9e0f4aa5a24fbd7ab1364f2f9f7b3078bcf3aa01d71ba5 SHA512 01686e590d0168108099d3c6c9bdb0885a25abccc9b6c87739eafec7103054424da1a5960a8d4566462dca9bf00cdd8b103ab6026523833d9aaa4d4bcdc5b620 DIST sdcc-doc-4.2.0.tar.bz2 1244684 BLAKE2B d6ee4001ee0d2dde61dd1e8567499909fa6373eac93f3731fa1d6628f6e488742cc0798b1ebb908769d4cc52e091d4d685b3891d7c15a519294240643e528b02 SHA512 8494de35991e9a38ca138545b7c2396d353b21d67a4f321afa9187a5c117c6ce7d3c0850e95c981ccc7a3c8fa1e470f5e2351b84ccbe1634b1f8bf085cd45f76 DIST sdcc-doc-4.4.0.tar.bz2 1293792 BLAKE2B dc2f1eed479b7fc0feeee3947176d311f3f5cc71d4f5a7c5729a4789e63df8dd24b0e6b7112a972eec6540771c4d170b8ce587ceb13868b90e66f2e82759499d SHA512 ea9b0b599cff7028b3a16157dba7ff7ef7675d638a1391b3e4252e37024fd6077631afa7a475447435cc6559b058ef4b9fa4b2091191fceb236bd80329c653f0 +DIST sdcc-doc-4.5.0.tar.bz2 1404904 BLAKE2B 6d48c83b698e94e721c45dc6928bc718054b6bc019f1e62104929633fb16eaad77efefd2cd827ce36a19809508d6f53c67f8f1113c7df9ab3d0ea1006d4f4fef SHA512 0591352d6ed3dd39b71ac79135da0bb37782911c400b6802ee300bc9ffd397aba7558b5d53ae0e37a0408ba686dfb548be0e2fcf9ecebb550e0f5d254789bbd8 DIST sdcc-src-4.0.0.tar.bz2 19204540 BLAKE2B 2192a7dc7418826440209dd8c7a73fd5ced491b799975b953368daeabb429327a6c518a1212a2fd49c34c6e5ab7d84f240cbf6ff8b3779e2d38f5ad81499ee71 SHA512 41a92711a9278261879caec1a01425104b7c75346b3c6ad9617cab025309c9b38f79eea2d04122f5ae6ce273fcd61fbde8a0d23756313a4593394230b51a1d4c DIST sdcc-src-4.1.0.tar.bz2 19400609 BLAKE2B 9754d70026af595a5456f0d7c1b375df2716c6400ca59affcadbfd3588f4d51c45a3d52c235d6efc9b7512b5f94f023d8d2964cc0365cdff4586edf71fc51af1 SHA512 a9c3fee427cbc66b56a286c8d66b2922f79c9dfb42d2ed2843b2e192a6b314a04de4c82f1083d8625b49756b5f1d99f8fb706402b5f1284110760ec346303779 DIST sdcc-src-4.2.0.tar.bz2 19662367 BLAKE2B a11d6b3af2552e0508bb1d0644d3e6db385634237fc93079716a5e3aa710bac25fd888e10dce76e6891ebe524f4d81d8318492001d8ce9ade0ef16d114adf14b SHA512 7ca4037d526b5fed7bbca4433835d0299ced7315dd69c1ec66cff873ec7caa41b69927363bf5850e2ad4f27ef6286e57f9ccd40bb6792308be6c3073c5238cba DIST sdcc-src-4.4.0.tar.bz2 20036262 BLAKE2B 891b2d29f98fedf5fd7ce5a0892c143d8cbeee1351746a633ba507dd71224ac34620530bbc278feff5d70cae20c6b53b3ea3b5efc4876efe974bbec223d8db72 SHA512 807738f852ab8df64dafa3deda1d9c5154d56fa090f126abe9368e0cb17f37589b7dac50d1e135609f0a14318f0d5d8abd444ed8303c854f2bd34cc783db4b30 +DIST sdcc-src-4.5.0.tar.bz2 20298103 BLAKE2B 8f7e79224e8c0692b8bc1377dbeb9c743f959ebb83bc444a215edf20f7d8c9faece7d0898ad130d141e81256cde00a74e1263f2fd9b65df0cca379524af2f93a SHA512 46edd0456d82ebeacc6e7b2ecf5038aac38ce161dc938662c438cca9c41f73b2004589788c18a0f1dd295033c9c35c202c052b463ec7bd8c605065d440d617f4 EBUILD sdcc-4.0.0-r1.ebuild 3521 BLAKE2B 48ad40b6ffc3271110075e3ba18c468335d24eed4c15c7580f257fd6261890529a95e5291b205be3ce2480436371bcb00141a7e99bccdbecc2ef7a39d6f65d20 SHA512 4a84125b1c5193eb618b76bd7ca6c948f6204dba654c1209513214bf9a01698c49b6163f8433150b2c149529484300d157baa8adfa681f1aee801f3c514fed3e EBUILD sdcc-4.0.0.ebuild 3467 BLAKE2B f91878482f72eb29c13fbd59ff1689254612dca9d249323e44264ef1d4b332fa7801da0207ebd7f54bf40c454023a696cf0c31720a043456d9ab5f31b81013b0 SHA512 21222a73d804a3f56c36845ae4ea0dad4319df6550c0081c82d740b8aeaeb16fe03451fbe27ce5a97b63e4854fee299b3876b9fcd08fb5872ed0a02476eade30 EBUILD sdcc-4.1.0.ebuild 3677 BLAKE2B d34aab5e78d263f0fb2f48755b40b5ef533fb64a5c3119da3c32eaa904f2a31b2dcb5e01ecaedbe98962fccc684ffd25955e1c6a6851d32251da5522b96007f4 SHA512 255c826df7458b7b834626e15a75ef4e129fd7f0516e84f551af0032395f905183e5867fab6e8b46ce4be82393cbf5d834722bae6588cadcde2412e585fae5ef EBUILD sdcc-4.2.0.ebuild 3817 BLAKE2B e4d3cab1212cd1499ada220607e0d3cc77a6812253202ad18ee13c694be314750e3753ff7b2d6f4814e37871c877f5959aab66eec3c9c5c53796de2303094e55 SHA512 887b1968d49a38a334ffc0ae49bf6fa1d4122a2a41eb9dc9596bf620c0a938874220e65e1b6dda000fa43ff20ab7dfcc3190ba8de95bf3a353aaa3eaee4f0e88 EBUILD sdcc-4.4.0.ebuild 4685 BLAKE2B e13cd6fdb357944b4860cf98eb3813187e8bae914776a803c418e348fc8c639590ffba390fdcce716efd79aa9361fed9cec4e0ecb9abfc5a0dcdf1f74b03afe2 SHA512 e8ea8bb0a4cd3b3d9fa235acf2f9c343fe461af10a4e36312b7c4fa7a9d753bba353ac9299b0ce00f6013d6a6b45735778cbe4c488a9f6bfc244f0c980005eba -EBUILD sdcc-9999.ebuild 3663 BLAKE2B 67e9547414cac809cda9ca2a11fd1b45bb58902f2e6d13a417b2ab78e4fa60ffbd9fab02779579c4ffd56f85f187b24601450b1f79a26146c66ca41281aab708 SHA512 6690382b974b13930073042c7fddac7b04ee92b60d6453a9bfed48a369aea4fcdd8ef3108c71d60e8602245c8b09eb65f0383307d46eaad9267c4602dbf5b921 +EBUILD sdcc-4.5.0.ebuild 4855 BLAKE2B c16d52bee763fddedf80831475656259bc6905d3364784df28c896e8002053d50c886aca56a7bf6dc3e02872b2dc063954ba14e5547d86b11fc59d00044e765c SHA512 a1a03285f666a5bf56be94d03bd9f3c36c6160904a7bb4ae547b175de8d6d3be5407256407ae50ce28cf4bfaf90c4b19934913568eeb1fcb9d72bff7854ec6e6 +EBUILD sdcc-9999.ebuild 4153 BLAKE2B 3267304d03a8447f28f901f140b6848e42f6ed99221fa11f3b93f8323fd63534127168a1d6babb0c944d90fed61f681019e83e099892a525f76cc7167347a59f SHA512 f60e21f508ead86762bebcd184db047c8e0e95f6e46883e2ee3a936b34471dc8b4b86da52dbd14c632a23e040a6ef93e18a1bbe6fd77d143195e245b6dd3f22c MISC metadata.xml 2888 BLAKE2B bf15f465cbe744c110b98ae15726fbd9ea1fb6544d5ff7a53d479b6003de937eeb79a1d2f620a92945c285557353a4fff4063e57f25f5dbe8cf908cc3b5885f3 SHA512 71067fd414aefa5d5cf3855b0295c97cfcfeef4d49c987af2c71c1782234fdc2f13e91322feecfff8238751c093569335c3e3e2ee6888c8bd553cbdee4482162 diff --git a/dev-embedded/sdcc/files/sdcc-4.5.0-autoreconf-libiberty.patch b/dev-embedded/sdcc/files/sdcc-4.5.0-autoreconf-libiberty.patch new file mode 100644 index 0000000..7383f47 --- /dev/null +++ b/dev-embedded/sdcc/files/sdcc-4.5.0-autoreconf-libiberty.patch @@ -0,0 +1,15 @@ +Most implicit function declarations left come from the included libiberty. +Add it to eautoreconf to regenerate its tests. +https://bugs.gentoo.org/898594 + +--- a/configure.ac ++++ b/configure.ac +@@ -874,7 +874,7 @@ + test $OPT_DISABLE_PACKIHX = 0 && AC_CONFIG_SUBDIRS(support/packihx) + test $OPT_DISABLE_UCSIM = 0 && AC_CONFIG_SUBDIRS(sim/ucsim) + test $OPT_DISABLE_SDCDB = 0 && AC_CONFIG_SUBDIRS(debugger/mcs51) +-test $OPT_DISABLE_SDBINUTILS = 0 && AC_CONFIG_SUBDIRS(support/sdbinutils) ++test $OPT_DISABLE_SDBINUTILS = 0 && AC_CONFIG_SUBDIRS(support/sdbinutils support/sdbinutils/libiberty) + AC_CONFIG_FILES([doc/Makefile]) + + ####test $OPT_DISABLE_AVR = 0 && AC_CONFIG_FILES([src/avr/Makefile]) diff --git a/dev-embedded/sdcc/files/sdcc-4.5.0-elf-fix.patch b/dev-embedded/sdcc/files/sdcc-4.5.0-elf-fix.patch new file mode 100644 index 0000000..5dabde8 --- /dev/null +++ b/dev-embedded/sdcc/files/sdcc-4.5.0-elf-fix.patch @@ -0,0 +1,12 @@ +diff '--color=auto' -uprNb sdcc-4.3.0.orig/sdas/linksrc/aslink.h sdcc-4.3.0/sdas/linksrc/aslink.h +--- sdcc-4.3.0.orig/sdas/linksrc/aslink.h 2025-05-07 15:07:20.854046196 +0300 ++++ sdcc-4.3.0/sdas/linksrc/aslink.h 2025-05-07 15:08:22.095963883 +0300 +@@ -1312,7 +1312,7 @@ extern VOID s19(int i); + extern VOID sflush(void); + + /* EEP: lkelf.c */ +-extern VOID elf(); ++extern VOID elf(int i); + + /* JCF: lkmem.c */ + extern int summary(struct area * xp); diff --git a/dev-embedded/sdcc/files/sdcc-4.5.0-fix-binutils-dependency.patch b/dev-embedded/sdcc/files/sdcc-4.5.0-fix-binutils-dependency.patch new file mode 100644 index 0000000..cae5ebe --- /dev/null +++ b/dev-embedded/sdcc/files/sdcc-4.5.0-fix-binutils-dependency.patch @@ -0,0 +1,22 @@ +https://bugs.gentoo.org/917114 +https://sourceforge.net/p/sdcc/support-requests/193/ + +--- sdcc/Makefile.in ++++ sdcc/Makefile.in +@@ -98,7 +98,6 @@ + ifeq ($(OPT_DISABLE_SDBINUTILS), 0) + TARGETS += sdcc-sdbinutils + PKGS += $(SDCC_SDBINUTILS) +-SDBINUTILS_BINS = sdar$(EXEEXT) sdranlib$(EXEEXT) sdnm$(EXEEXT) sdobjcopy$(EXEEXT) + SDCC_BINUTILS = sdcc-sdbinutils + endif + +@@ -142,7 +141,7 @@ + + tini: checkconf sdcc-tini + +-sdcc-libs: ${SDCC_SDBINUTILS} ++sdcc-libs: ${SDCC_BINUTILS} + for lib in $(SDCC_LIBS); do $(MAKE) -C $$lib; done + + sdcc-cc: sdcc-libs diff --git a/dev-embedded/sdcc/files/sdcc-4.5.0-fix-mkdir-autoconf-test.patch b/dev-embedded/sdcc/files/sdcc-4.5.0-fix-mkdir-autoconf-test.patch new file mode 100644 index 0000000..9a0be65 --- /dev/null +++ b/dev-embedded/sdcc/files/sdcc-4.5.0-fix-mkdir-autoconf-test.patch @@ -0,0 +1,13 @@ +Fix implicit function declaration in configure logs: mkdir +https://bugs.gentoo.org/898594 + +--- a/support/cpp/configure.ac ++++ b/support/cpp/configure.ac +@@ -2317,6 +2317,7 @@ + ################################################################################ + + # mkdir takes a single argument on some systems. ++AC_CHECK_HEADERS([sys/stat.h]) + gcc_AC_FUNC_MKDIR_TAKES_ONE_ARG + + # File extensions diff --git a/dev-embedded/sdcc/sdcc-4.5.0.ebuild b/dev-embedded/sdcc/sdcc-4.5.0.ebuild new file mode 100644 index 0000000..5401767 --- /dev/null +++ b/dev-embedded/sdcc/sdcc-4.5.0.ebuild @@ -0,0 +1,180 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools flag-o-matic + +if [[ ${PV} == "9999" ]] ; then + ESVN_REPO_URI="https://svn.code.sf.net/p/sdcc/code/trunk/sdcc" + inherit subversion +else + SRC_URI=" + https://downloads.sourceforge.net/project/${PN}/sdcc/${PV}/${PN}-src-${PV}.tar.bz2 + doc? ( https://downloads.sourceforge.net/project/${PN}/sdcc-doc/${PV}/${PN}-doc-${PV}.tar.bz2 ) + " + + KEYWORDS="amd64 x86" +fi + +DESCRIPTION="Small device C compiler (for various microprocessors)" +HOMEPAGE="https://sdcc.sourceforge.net/" + +LICENSE=" + GPL-2 ZLIB + non-free? ( MicroChip-SDCC ) + packihx? ( public-domain ) +" +SLOT="0" +# in order of configure.ac's AC_DO_PORT stanzas +SDCC_PORTS=" + mcs51 + z80 z180 + r2k r2ka r3ka + sm83 + tlcs90 + ez80-z80 + z80n + ds390 ds400 + pic14 pic16 + hc08 + s08 + stm8 + pdk13 pdk14 pdk15 pdk16 + mos6502 mos65c02 +" +IUSE=" + ${SDCC_PORTS} + +boehm-gc device-lib doc non-free packihx sdcdb +sdcpp ucsim +" + +RDEPEND=" + dev-libs/boost:= + sys-libs/zlib:= + pic14? ( >=dev-embedded/gputils-0.13.7 ) + pic16? ( >=dev-embedded/gputils-0.13.7 ) + boehm-gc? ( dev-libs/boehm-gc:= ) + sdcdb? ( sys-libs/readline:0= ) + ucsim? ( sys-libs/ncurses:= ) +" +DEPEND=" + ${RDEPEND} + dev-util/gperf +" +PATCHES=( + "${FILESDIR}"/sdcc-4.3.2-override-override.patch + "${FILESDIR}"/${P}-fix-mkdir-autoconf-test.patch + "${FILESDIR}"/${P}-autoreconf-libiberty.patch + "${FILESDIR}"/${P}-elf-fix.patch +) + +src_prepare() { + # Fix conflicting variable names between Gentoo and sdcc + find device/lib/pic{14,16} device/non-free/lib/pic{14,16} \( \ + -name 'configure.ac' -o -name 'Makefile.*' \) \ + -exec sed -i 's/\/SDCC_&/g' {} + || die + find device -name 'Makefile.in' \ + -exec sed -i 's/\/SDCC_&/g' {} + || die + # Possible alternative: Patch the following files to not pick up the + # variables from the environment: + # - lib/Makefile.in (PORTDIR ifndef/endif) + # - device/non-free/lib/pic14/Makefile.common.in (ARCH ?= 877) + # - device/non-free/lib/pic16/configure.ac (${ARCH:-18f452}) + # - device/lib/pic14/configure.ac (${ARCH:-16f877}) + # - device/lib/pic16/configure.ac (${ARCH:-18f452}) + + # Make sure timestamps don't get messed up. + [[ ${PV} == "9999" ]] && find "${S}" -type f -exec touch -r . {} + + + mkdir -p support/sdbinutils/bfd/doc || die + + # add acinclude.m4 from binutils to run autoreconf for libiberty + cp "${FILESDIR}"/binutils-2.41-acinclude.m4 support/sdbinutils/libiberty/acinclude.m4 || die + # libiberty configure will check this file and fail if not found + cp install-sh support/sdbinutils/libiberty/ || die + # libiberty configure will fail if this was not set + export libiberty_topdir="${S}"/support/sdbinutils/libiberty + + # this does not build: https://sourceforge.net/p/sdcc/bugs/3673/ + # disable for now + sed 's:device/lib/mos65c02/Makefile::' -i configure.ac || die + + use ucsim || rm -r "${S}"/sim + + default + eautoreconf + + # Avoid 'bfd.info' rebuild with 'makeinfo': bug #705424 + # Build dependencies are: eautoreconf->Makefile.in->bfdver.texi->bfd.info + touch support/sdbinutils/bfd/doc/bfdver.texi || die + touch support/sdbinutils/bfd/doc/bfd.info || die +} + +src_configure() { + # -Werror=odr, -Werror=lto-type-mismatch + # https://bugs.gentoo.org/924691 + # https://sourceforge.net/p/sdcc/bugs/3725/ + filter-lto + + local myeconfargs=( + ac_cv_prog_STRIP=true + --without-ccache + --enable-sdbinutils + + $(use_enable ucsim) + $(use_enable device-lib) + $(use_enable packihx) + $(use_enable sdcpp) + $(use_enable sdcdb) + $(use_enable non-free) + $(use_enable boehm-gc libgc) + + $(use_enable mcs51 mcs51-port) + $(use_enable z80 z80-port) + $(use_enable z180 z180-port) + $(use_enable r2k r2k-port) + $(use_enable r2ka r2ka-port) + $(use_enable r3ka r3ka-port) + $(use_enable sm83 sm83-port) + $(use_enable tlcs90 tlcs90-port) + $(use_enable ez80-z80 ez80_z80-port) + $(use_enable z80n z80n-port) + $(use_enable ds390 ds390-port) + $(use_enable ds400 ds400-port) + $(use_enable pic14 pic14-port) + $(use_enable pic16 pic16-port) + $(use_enable hc08 hc08-port) + $(use_enable s08 s08-port) + $(use_enable stm8 stm8-port) + $(use_enable pdk13 pdk13-port) + $(use_enable pdk14 pdk14-port) + $(use_enable pdk15 pdk15-port) + $(use_enable pdk16 pdk16-port) + $(use_enable mos6502 mos6502-port) + $(use_enable mos65c02 mos65c02-port) + ) + econf "${myeconfargs[@]}" +} + +src_compile() { + default + + # Sanity check, as gputils errors/segfaults don't cause make to stop + local libs=() + use pic14 && libs+=( device/lib/build/pic14/libsdcc.lib ) + use pic16 && libs+=( device/lib/build/pic16/libsdcc.lib ) + for lib in "${libs[@]}"; do + [[ -f "${lib}" ]] || die "Failed to build ${lib}" + done +} + +src_install() { + default + dodoc doc/*.txt + find "${ED}" -type d -name .deps -exec rm -vr {} + || die + + if use doc && [[ ${PV} != "9999" ]]; then + cd "${WORKDIR}"/doc + dodoc -r * + fi +} diff --git a/dev-embedded/sdcc/sdcc-9999.ebuild b/dev-embedded/sdcc/sdcc-9999.ebuild index 3acf256..ad4a4dc 100644 --- a/dev-embedded/sdcc/sdcc-9999.ebuild +++ b/dev-embedded/sdcc/sdcc-9999.ebuild @@ -1,27 +1,24 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 -inherit autotools toolchain-funcs +inherit autotools flag-o-matic if [[ ${PV} == "9999" ]] ; then ESVN_REPO_URI="https://svn.code.sf.net/p/sdcc/code/trunk/sdcc" inherit subversion else SRC_URI=" - mirror://sourceforge/sdcc/${PN}-src-${PV}.tar.bz2 - doc? ( mirror://sourceforge/sdcc/${PN}-doc-${PV}.tar.bz2 ) + https://downloads.sourceforge.net/project/${PN}/sdcc/${PV}/${PN}-src-${PV}.tar.bz2 + doc? ( https://downloads.sourceforge.net/project/${PN}/sdcc-doc/${PV}/${PN}-doc-${PV}.tar.bz2 ) " KEYWORDS="~amd64 ~x86" - PATCHES=( - "${FILESDIR}"/${PN}-3.8.0-override-override.patch - ) fi DESCRIPTION="Small device C compiler (for various microprocessors)" -HOMEPAGE="http://sdcc.sourceforge.net/" +HOMEPAGE="https://sdcc.sourceforge.net/" LICENSE=" GPL-2 ZLIB @@ -31,11 +28,10 @@ LICENSE=" SLOT="0" # in order of configure.ac's AC_DO_PORT stanzas SDCC_PORTS=" - avr mcs51 z80 z180 r2k r2ka r3ka - gbz80 + sm83 tlcs90 ez80-z80 z80n @@ -45,50 +41,52 @@ SDCC_PORTS=" s08 stm8 pdk13 pdk14 pdk15 pdk16 + mos6502 mos65c02 " IUSE=" ${SDCC_PORTS} - +boehm-gc device-lib doc non-free packihx +sdbinutils sdcdb +sdcpp ucsim + +boehm-gc device-lib doc non-free packihx sdcdb +sdcpp ucsim " -for port in ${SDCC_PORTS}; do -REQUIRED_USE="${REQUIRED_USE} - ${port}? ( sdbinutils ) -" -done -REQUIRED_USE="${REQUIRED_USE} - || ( ${SDCC_PORTS} ) -" - -RESTRICT="strip" - RDEPEND=" dev-libs/boost:= - sys-libs/ncurses:= - sys-libs/readline:0= + sys-libs/zlib:= pic14? ( >=dev-embedded/gputils-0.13.7 ) pic16? ( >=dev-embedded/gputils-0.13.7 ) boehm-gc? ( dev-libs/boehm-gc:= ) - !dev-embedded/sdcc-svn + sdcdb? ( sys-libs/readline:0= ) + ucsim? ( sys-libs/ncurses:= ) " DEPEND=" ${RDEPEND} dev-util/gperf " +PATCHES=( + "${FILESDIR}"/sdcc-4.3.2-override-override.patch +) src_prepare() { # Fix conflicting variable names between Gentoo and sdcc - find \ - '(' -name 'Makefile*.in' -o -name 'configure' ')' \ - -exec sed -r -i \ - -e 's:\<(PORTDIR|ARCH)\>:SDCC\1:g' \ - {} + || die + find device/lib/pic{14,16} device/non-free/lib/pic{14,16} \( \ + -name 'configure.ac' -o -name 'Makefile.*' \) \ + -exec sed -i 's/\/SDCC_&/g' {} + || die + find device -name 'Makefile.in' \ + -exec sed -i 's/\/SDCC_&/g' {} + || die + # Possible alternative: Patch the following files to not pick up the + # variables from the environment: + # - lib/Makefile.in (PORTDIR ifndef/endif) + # - device/non-free/lib/pic14/Makefile.common.in (ARCH ?= 877) + # - device/non-free/lib/pic16/configure.ac (${ARCH:-18f452}) + # - device/lib/pic14/configure.ac (${ARCH:-16f877}) + # - device/lib/pic16/configure.ac (${ARCH:-18f452}) # Make sure timestamps don't get messed up. [[ ${PV} == "9999" ]] && find "${S}" -type f -exec touch -r . {} + + mkdir -p support/sdbinutils/bfd/doc || die + default - eautoreconf + #eautoreconf # Avoid 'bfd.info' rebuild with 'makeinfo': bug #705424 # Build dependencies are: eautoreconf->Makefile.in->bfdver.texi->bfd.info @@ -97,66 +95,70 @@ src_prepare() { } src_configure() { - # sdbinutils subdir doesn't pass down --docdir properly, so need to - # expand $(datarootdir) ourselves. - unset ARCH - econf \ - ac_cv_prog_AR="$(tc-getAR)" \ - ac_cv_prog_AS="$(tc-getAS)" \ - ac_cv_prog_STRIP=true \ - $(use_enable boehm-gc libgc) \ - $(use_enable device-lib) \ - $(use_enable non-free) \ - $(use_enable packihx) \ - $(use_enable sdbinutils) \ - $(use_enable sdcdb) \ - $(use_enable sdcpp) \ - $(use_enable ucsim) \ - \ - $(use_enable avr avr-port) \ - $(use_enable mcs51 mcs51-port) \ - $(use_enable z80 z80-port) \ - $(use_enable z180 z180-port) \ - $(use_enable r2k r2k-port) \ - $(use_enable r2ka r2ka-port) \ - $(use_enable r3ka r3ka-port) \ - $(use_enable gbz80 gbz80-port) \ - $(use_enable tlcs90 tlcs90-port) \ - $(use_enable ez80-z80 ez80_z80-port) \ - $(use_enable z80n z80n-port) \ - $(use_enable ds390 ds390-port) \ - $(use_enable ds400 ds400-port) \ - $(use_enable pic14 pic14-port) \ - $(use_enable pic16 pic16-port) \ - $(use_enable hc08 hc08-port) \ - $(use_enable s08 s08-port) \ - $(use_enable stm8 stm8-port) \ - $(use_enable pdk13 pdk13-port) \ - $(use_enable pdk14 pdk14-port) \ - $(use_enable pdk15 pdk15-port) \ - $(use_enable pdk16 pdk16-port) \ - \ - --disable-doc \ + # -Werror=odr, -Werror=lto-type-mismatch + # https://bugs.gentoo.org/924691 + # https://sourceforge.net/p/sdcc/bugs/3725/ + filter-lto + + local myeconfargs=( + ac_cv_prog_STRIP=true --without-ccache + --enable-sdbinutils + + $(use_enable ucsim) + $(use_enable device-lib) + $(use_enable packihx) + $(use_enable sdcpp) + $(use_enable sdcdb) + $(use_enable non-free) + $(use_enable boehm-gc libgc) + + $(use_enable mcs51 mcs51-port) + $(use_enable z80 z80-port) + $(use_enable z180 z180-port) + $(use_enable r2k r2k-port) + $(use_enable r2ka r2ka-port) + $(use_enable r3ka r3ka-port) + $(use_enable sm83 sm83-port) + $(use_enable tlcs90 tlcs90-port) + $(use_enable ez80-z80 ez80_z80-port) + $(use_enable z80n z80n-port) + $(use_enable ds390 ds390-port) + $(use_enable ds400 ds400-port) + $(use_enable pic14 pic14-port) + $(use_enable pic16 pic16-port) + $(use_enable hc08 hc08-port) + $(use_enable s08 s08-port) + $(use_enable stm8 stm8-port) + $(use_enable pdk13 pdk13-port) + $(use_enable pdk14 pdk14-port) + $(use_enable pdk15 pdk15-port) + $(use_enable pdk16 pdk16-port) + $(use_enable mos6502 mos6502-port) + $(use_enable mos65c02 mos65c02-port) + ) + econf "${myeconfargs[@]}" } -#src_compile() { -# unset ARCH -# default -#} +src_compile() { + default + + # Sanity check, as gputils errors/segfaults don't cause make to stop + local libs=() + use pic14 && libs+=( device/lib/build/pic14/libsdcc.lib ) + use pic16 && libs+=( device/lib/build/pic16/libsdcc.lib ) + for lib in "${libs[@]}"; do + [[ -f "${lib}" ]] || die "Failed to build ${lib}" + done +} src_install() { default dodoc doc/*.txt - find "${D}" -name .deps -exec rm -rf {} + || die + find "${ED}" -type d -name .deps -exec rm -vr {} + || die if use doc && [[ ${PV} != "9999" ]]; then cd "${WORKDIR}"/doc dodoc -r * fi - - # a bunch of archives (*.a) are built & installed by gputils - # for PIC processors, but they do not work with standard `ar` - # & `scanelf` utils and they're not for the host. - dostrip -x /usr/bin }