diff options
author | Esteve Varela Colominas <esteve.varela@gmail.com> | 2022-12-01 19:49:37 +0100 |
---|---|---|
committer | Viorel Munteanu <ceamac@gentoo.org> | 2023-03-05 12:14:21 +0200 |
commit | ec9f33c18f0621452246ff37762a42485ad050ca (patch) | |
tree | aba9e15b69c067d738d827840edc48f93d342d18 /dev-embedded | |
parent | dev-embedded/gputils: Bump to 1.5.2 (diff) | |
download | gentoo-ec9f33c18f0621452246ff37762a42485ad050ca.tar.gz gentoo-ec9f33c18f0621452246ff37762a42485ad050ca.tar.bz2 gentoo-ec9f33c18f0621452246ff37762a42485ad050ca.zip |
dev-embedded/sdcc: Bump to 4.2.0
This update also fixes a long-standing bug with regards to the pic14 and
pic16 ports. Be sure to build with USE="pic14 pic16 non-free device-lib"
(all linked bugs are a copy of this, can be closed when this package
goes stable)
Bug: https://bugs.gentoo.org/682086
Bug: https://bugs.gentoo.org/730484
Bug: https://bugs.gentoo.org/731848
Closes: https://bugs.gentoo.org/844925
Signed-off-by: Esteve Varela Colominas <esteve.varela@gmail.com>
Closes: https://github.com/gentoo/gentoo/pull/28496
Signed-off-by: Viorel Munteanu <ceamac@gentoo.org>
Diffstat (limited to 'dev-embedded')
-rw-r--r-- | dev-embedded/sdcc/Manifest | 2 | ||||
-rw-r--r-- | dev-embedded/sdcc/files/sdcc-4.2.0-link-tinfo.patch | 24 | ||||
-rw-r--r-- | dev-embedded/sdcc/metadata.xml | 17 | ||||
-rw-r--r-- | dev-embedded/sdcc/sdcc-4.2.0.ebuild | 167 | ||||
-rw-r--r-- | dev-embedded/sdcc/sdcc-9999.ebuild | 134 |
5 files changed, 276 insertions, 68 deletions
diff --git a/dev-embedded/sdcc/Manifest b/dev-embedded/sdcc/Manifest index f2c7ac6c98a1..772ac6c967a3 100644 --- a/dev-embedded/sdcc/Manifest +++ b/dev-embedded/sdcc/Manifest @@ -1,6 +1,8 @@ DIST sdcc-doc-3.8.0.tar.bz2 965465 BLAKE2B 541ed3ba4d3a23dd3fcea248de84d887fdcd8ddaf3ed0f9f810bf8cb9fcb5b10eb2cd96099d83c5a0fda240cdd3d11fd247e576a67a32047a4f7a705b8401637 SHA512 63319b7c344b320600e6a7c158d1a5e69abe595dfd6b8d32a95f15678c3bc2f6fe72c959516c4b1f812deb089854c6a51c31438ef6a6c7f9fcb4d419d8cce3cf 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-src-3.8.0.tar.bz2 18987862 BLAKE2B 7e8ddea41ae02842bb1376c53364c386a0fb47a1acdcc97cc72f002e78a2854fc43adfd0177f94dd1173dbd81052c390c5b2fef302c73f0b830ec83eea70869c SHA512 38145ea3e9560eb8894c54bd7213da67a20163739c944c3247fa8fa456dfedaaa469746169d3e114affcab48b73db4cd8c9a0a367e7368f2471de64761a3e04a 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 diff --git a/dev-embedded/sdcc/files/sdcc-4.2.0-link-tinfo.patch b/dev-embedded/sdcc/files/sdcc-4.2.0-link-tinfo.patch new file mode 100644 index 000000000000..a8f4ae7565bc --- /dev/null +++ b/dev-embedded/sdcc/files/sdcc-4.2.0-link-tinfo.patch @@ -0,0 +1,24 @@ +Link -ltinfo for ucsim + +/usr/lib/gcc/x86_64-pc-linux-gnu/11.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: /var/tmp/portage/dev-embedded/sdcc-4.2.0/temp/cc3R2ckl.ltrans0.ltrans.o: undefined reference to symbol 'nodelay' +/usr/lib/gcc/x86_64-pc-linux-gnu/11.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: /lib64/libtinfo.so.6: error adding symbols: DSO missing from command line + +--- sdcc-4.2.0.orig/sim/ucsim/configure.ac ++++ sdcc-4.2.0/sim/ucsim/configure.ac +@@ -405,14 +405,14 @@ + if test $curses_ok != yes; then + AC_CHECK_LIB(curses,nl, + curses_ok="yes" +- CURSES_LIBS="${CURSES_LIBS} -lcurses", ++ CURSES_LIBS="${CURSES_LIBS} -lcurses -ltinfo", + curses_ok="no") + fi + + if test $curses_ok != yes; then + AC_CHECK_LIB(ncurses,nl, + curses_ok="yes" +- CURSES_LIBS="${CURSES_LIBS} -lncurses", ++ CURSES_LIBS="${CURSES_LIBS} -lncurses -ltinfo", + curses_ok="no") + fi + fi diff --git a/dev-embedded/sdcc/metadata.xml b/dev-embedded/sdcc/metadata.xml index 573753d73430..c4bc3f3380ae 100644 --- a/dev-embedded/sdcc/metadata.xml +++ b/dev-embedded/sdcc/metadata.xml @@ -6,12 +6,14 @@ <name>Embedded Gentoo</name> </maintainer> <longdescription> -SDCC is a retargettable, optimizing ANSI - C compiler suite that targets the -Intel MCS51 based microprocessors (8031, 8032, 8051, 8052, etc.), Maxim -(formerly Dallas) DS80C390 variants, Freescale (formerly Motorola) HC08 based -(hc08, s08), Zilog Z80 based MCUs (z80, z180, gbz80, Rabbit 2000/3000, Rabbit -3000A, TLCS-90) and STMicroelectronics STM8. It can be retargeted for other -microprocessors. +SDCC is a retargettable, optimizing Standard C (ANSI C89, ISO C99, ISO C11) +compiler suite that targets the Intel MCS51 based microprocessors (8031, 8032, +8051, 8052, etc.), Maxim (formerly Dallas) DS80C390 variants, Freescale +(formerly Motorola) HC08 based (hc08, s08), Zilog Z80 based MCUs (Z80, Z180, +SM83, Rabbit 2000, 2000A, 3000A, TLCS-90), Padauk (pdk14, pdk15) and +STMicroelectronics STM8. Work is in progress on supporting the Padauk pdk13 and +MOS 6502 targets; Microchip PIC16 and PIC18 targets are unmaintained. SDCC can +be retargeted for other microprocessors. </longdescription> <upstream> <remote-id type="sourceforge">sdcc</remote-id> @@ -35,6 +37,7 @@ microprocessors. <flag name="r2ka">Add support for Rabbit 2000A</flag> <flag name="r3ka">Add support for Rabbit 3000A</flag> <flag name="gbz80">Add support for Gameboy gbz80</flag> + <flag name="sm83">Add support for Gameboy SM83</flag> <flag name="tlcs90">Add support for TLCS-90</flag> <flag name="ez80-z80">Add support for EZ80-Z80</flag> <flag name="z80n">Add support for Zilog Z80N</flag> @@ -49,5 +52,7 @@ microprocessors. <flag name="pdk14">Add support for PDK14</flag> <flag name="pdk15">Add support for PDK15</flag> <flag name="pdk16">Add support for PDK16</flag> + <flag name="mos6502">Add support for MOS 6502</flag> + <flag name="mos65c02">Add support for MOS 65C02</flag> </use> </pkgmetadata> diff --git a/dev-embedded/sdcc/sdcc-4.2.0.ebuild b/dev-embedded/sdcc/sdcc-4.2.0.ebuild new file mode 100644 index 000000000000..672ec63f733d --- /dev/null +++ b/dev-embedded/sdcc/sdcc-4.2.0.ebuild @@ -0,0 +1,167 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools + +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 ) + " + + KEYWORDS="~amd64 ~x86" +fi + +DESCRIPTION="Small device C compiler (for various microprocessors)" +HOMEPAGE="http://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 +sdbinutils sdcdb +sdcpp ucsim +" + +for port in ${SDCC_PORTS}; do +REQUIRED_USE="${REQUIRED_USE} + ${port}? ( sdbinutils ) +" +done +REQUIRED_USE="${REQUIRED_USE} + || ( ${SDCC_PORTS} ) +" + +RDEPEND=" + dev-libs/boost:= + pic14? ( >=dev-embedded/gputils-0.13.7 ) + pic16? ( >=dev-embedded/gputils-0.13.7 ) + boehm-gc? ( dev-libs/boehm-gc:= ) + sdbinutils? ( sys-libs/zlib:= ) + sdcdb? ( sys-libs/readline:0= ) + ucsim? ( sys-libs/ncurses:= ) +" +DEPEND=" + ${RDEPEND} + dev-util/gperf +" +PATCHES=( + "${FILESDIR}"/sdcc-3.8.0-override-override.patch + "${FILESDIR}"/sdcc-4.2.0-link-tinfo.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/\<ARCH\>/SDCC_&/g' {} + || die + find device -name 'Makefile.in' \ + -exec sed -i 's/\<PORTDIR\>/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 . {} + + + 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() { + local myeconfargs=( + ac_cv_prog_STRIP=true + --without-ccache + + $(use_enable ucsim) + $(use_enable device-lib) + $(use_enable packihx) + $(use_enable sdcpp) + $(use_enable sdcdb) + $(use_enable sdbinutils) + $(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 "${D}" -type d -name .deps -exec rm -vrf {} + || 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 9b5bf53b05db..672ec63f733d 100644 --- a/dev-embedded/sdcc/sdcc-9999.ebuild +++ b/dev-embedded/sdcc/sdcc-9999.ebuild @@ -1,9 +1,9 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 -inherit autotools toolchain-funcs +inherit autotools if [[ ${PV} == "9999" ]] ; then ESVN_REPO_URI="https://svn.code.sf.net/p/sdcc/code/trunk/sdcc" @@ -13,7 +13,6 @@ else mirror://sourceforge/sdcc/${PN}-src-${PV}.tar.bz2 doc? ( mirror://sourceforge/sdcc/${PN}-doc-${PV}.tar.bz2 ) " - S="${WORKDIR}/sdcc" KEYWORDS="~amd64 ~x86" fi @@ -29,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 @@ -43,6 +41,7 @@ SDCC_PORTS=" s08 stm8 pdk13 pdk14 pdk15 pdk16 + mos6502 mos65c02 " IUSE=" ${SDCC_PORTS} @@ -58,32 +57,38 @@ REQUIRED_USE="${REQUIRED_USE} || ( ${SDCC_PORTS} ) " -RESTRICT="strip" - RDEPEND=" dev-libs/boost:= - sys-libs/ncurses:= - sys-libs/readline:0= pic14? ( >=dev-embedded/gputils-0.13.7 ) pic16? ( >=dev-embedded/gputils-0.13.7 ) boehm-gc? ( dev-libs/boehm-gc:= ) - !dev-embedded/sdcc-svn + sdbinutils? ( sys-libs/zlib:= ) + sdcdb? ( sys-libs/readline:0= ) + ucsim? ( sys-libs/ncurses:= ) " DEPEND=" ${RDEPEND} dev-util/gperf " PATCHES=( - "${FILESDIR}"/${PN}-3.8.0-override-override.patch + "${FILESDIR}"/sdcc-3.8.0-override-override.patch + "${FILESDIR}"/sdcc-4.2.0-link-tinfo.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/\<ARCH\>/SDCC_&/g' {} + || die + find device -name 'Makefile.in' \ + -exec sed -i 's/\<PORTDIR\>/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 . {} + @@ -98,60 +103,65 @@ src_prepare() { } src_configure() { - # sdbinutils subdir doesn't pass down --docdir properly, so need to - # expand $(datarootdir) ourselves. - 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 \ + local myeconfargs=( + ac_cv_prog_STRIP=true --without-ccache + + $(use_enable ucsim) + $(use_enable device-lib) + $(use_enable packihx) + $(use_enable sdcpp) + $(use_enable sdcdb) + $(use_enable sdbinutils) + $(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 "${D}" -name .deps -exec rm -rf {} + || die + find "${D}" -type d -name .deps -exec rm -vrf {} + || 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 } |