diff options
author | 2010-10-08 09:38:44 +0000 | |
---|---|---|
committer | 2010-10-08 09:38:44 +0000 | |
commit | c258c11a9528a1b8f111feca4e39e77da47c1d4f (patch) | |
tree | b7e754c32b183a87fe598a5f5ed0b1d71b4ba088 /dev-embedded/sdcc | |
parent | Bump to 0.4.10. Bunch of 64-bit and SSE improvements amongst other fixes. (diff) | |
download | historical-c258c11a9528a1b8f111feca4e39e77da47c1d4f.tar.gz historical-c258c11a9528a1b8f111feca4e39e77da47c1d4f.tar.bz2 historical-c258c11a9528a1b8f111feca4e39e77da47c1d4f.zip |
Version bump #270621 by Karl Hiramoto. Merge & clean up the sdcc-svn package and fix #251876 #255659 by Diego E. Pettenò in the process.
Package-Manager: portage-2.2_rc86/cvs/Linux x86_64
Diffstat (limited to 'dev-embedded/sdcc')
-rw-r--r-- | dev-embedded/sdcc/ChangeLog | 14 | ||||
-rw-r--r-- | dev-embedded/sdcc/Manifest | 21 | ||||
-rw-r--r-- | dev-embedded/sdcc/files/sdcc-2.9.0-build.patch | 51 | ||||
-rw-r--r-- | dev-embedded/sdcc/files/sdcc-2.9.0-gcc44.patch | 15 | ||||
-rw-r--r-- | dev-embedded/sdcc/files/sdcc-2.9.0-getline.patch | 16 | ||||
-rw-r--r-- | dev-embedded/sdcc/files/sdcc-2.9.0-headers.patch | 209 | ||||
-rw-r--r-- | dev-embedded/sdcc/files/sdcc-9999-build.patch | 53 | ||||
-rw-r--r-- | dev-embedded/sdcc/sdcc-2.9.0.ebuild | 97 | ||||
-rw-r--r-- | dev-embedded/sdcc/sdcc-9999.ebuild | 85 |
9 files changed, 558 insertions, 3 deletions
diff --git a/dev-embedded/sdcc/ChangeLog b/dev-embedded/sdcc/ChangeLog index 6424b8be27a8..00add45b246a 100644 --- a/dev-embedded/sdcc/ChangeLog +++ b/dev-embedded/sdcc/ChangeLog @@ -1,6 +1,16 @@ # ChangeLog for dev-embedded/sdcc -# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/dev-embedded/sdcc/ChangeLog,v 1.42 2009/08/10 08:11:49 ssuominen Exp $ +# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2 +# $Header: /var/cvsroot/gentoo-x86/dev-embedded/sdcc/ChangeLog,v 1.43 2010/10/08 09:38:44 vapier Exp $ + +*sdcc-9999 (08 Oct 2010) +*sdcc-2.9.0 (08 Oct 2010) + + 08 Oct 2010; Mike Frysinger <vapier@gentoo.org> +sdcc-2.9.0.ebuild, + +files/sdcc-2.9.0-build.patch, +files/sdcc-2.9.0-gcc44.patch, + +files/sdcc-2.9.0-getline.patch, +files/sdcc-2.9.0-headers.patch, + +sdcc-9999.ebuild, +files/sdcc-9999-build.patch: + Version bump #270621 by Karl Hiramoto. Merge & clean up the sdcc-svn + package and fix #251876 #255659 by Diego E. Pettenò in the process. 10 Aug 2009; Samuli Suominen <ssuominen@gentoo.org> sdcc-2.8.0.ebuild, +files/sdcc-2.8.0-gcc44.patch: diff --git a/dev-embedded/sdcc/Manifest b/dev-embedded/sdcc/Manifest index 2a00b54c698f..cb0356442c88 100644 --- a/dev-embedded/sdcc/Manifest +++ b/dev-embedded/sdcc/Manifest @@ -1,16 +1,35 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA256 + AUX sdcc-2.8.0-flags.patch 2103 RMD160 35f207ff98855e9c347e751f272e9f7fc9392315 SHA1 9ea13dc7501a7a8ca10c290dda897e954f1cfe18 SHA256 bc578efacde9ebf65f49c2d209854a7ada18f337da894ed37414fde0dd1bc046 AUX sdcc-2.8.0-gcc44.patch 313 RMD160 1b4740b353869421c22749af1ed97df9781bad08 SHA1 461775e92045d42d38e5d190506fb385bb51fbbc SHA256 ae0a477edc8f9aa0f6bb6b08fcde4538fd465708c0d79dc5bdc96969feacc115 +AUX sdcc-2.9.0-build.patch 2443 RMD160 d9344af14933372a17040592ca054c1d46ce3ca0 SHA1 7f4435a858ffcf2a9649cf4808435a853799740f SHA256 11ea67c70cc4cca2d487ad3ffc140023ff3d7d67fe7ba04f5529515e6baf2b1b +AUX sdcc-2.9.0-gcc44.patch 419 RMD160 5f2e9bcd5b2e5f2a16c600097ab0f7575fa2ec39 SHA1 ec2dc87ceedfebc7fe2bc5522bf7eff7ab06dc60 SHA256 ffc643045f09d0b191172faf79dcdf58c3f6d8cf8361b0d75b65fafa7b29f3a8 +AUX sdcc-2.9.0-getline.patch 308 RMD160 84d1ee72caca6e250de921a3a6c22a61b317d273 SHA1 04f165c05e942628e5f60c0d7141e8b7bbc38f1d SHA256 c51c06e536bb761f301a816916f467b29b4e144b9380dbc1163799ea6e24a95a +AUX sdcc-2.9.0-headers.patch 7919 RMD160 022b90dc61e2a2912bef5c6c6e5b3239c00d4f97 SHA1 b5c068e6a3531066537d0e5d5cc637834e4c72a9 SHA256 8c5e0162f52eaaad91e4dee2c5197dfa7ec075dca953bdf00b5623a15ca867f8 +AUX sdcc-9999-build.patch 2533 RMD160 ca049af62e06f47bc7aa881de6aa4df28c9218b0 SHA1 aac016ab093f015490e8566e9ce190913265bd3d SHA256 c58317e2e281bcd2acddd01b91f5abeb11ced9e28f1153032a66b185e3170b2d DIST sdcc-doc-2.6.0.tar.gz 1026186 RMD160 bec50c8a4ca1263dd4cd533bf2802cfe17cc8f6c SHA1 7689d13886d2cf9b1e346ec2d86595046b08ef1b SHA256 fca8592706f76ed7063652dafa8c18c79070a1b31c12b8834b7feffbcb945817 DIST sdcc-doc-2.7.0.tar.bz2 1211113 RMD160 5eb71415084561db980bdc81d104427e647277a4 SHA1 d2dd4318b308372fea36a9093b597127dd258e1c SHA256 3a70654c9c0a0f86d9632d85f94eed946c9faf946c266fceadc5f60f590c0b70 DIST sdcc-doc-2.8.0.tar.bz2 1363271 RMD160 845993157869fd7b5dc889141c1d07c2873f671a SHA1 a6d3154f7a54e341597e88acb723fed1e41c1938 SHA256 b40fd15e69d89872c2982fe8a9ed2cc0415d05d0e830b4969714e0af8db21f6d +DIST sdcc-doc-2.9.0.tar.bz2 1388379 RMD160 ff65d86810133385e288e2a43438d4c98ae1a8da SHA1 6bb0bebd5517df3d2a558943ac921f41913be215 SHA256 b3a210dfeb46b924cf36531a6e5a11b9d7334765a61e46688ad3f7016802d057 DIST sdcc-doc-20060502.tar.gz 1027650 RMD160 4c4d1b4f2f5b72c7fe61aff2c354e4f1b7a035d4 SHA1 b9800ca1421443f006881ae9bd11b039269d0123 SHA256 b2663f2a9a195d94990fe6a958b7f1b1b96f5f11e12a7b738613ca762f927407 DIST sdcc-src-2.6.0.tar.gz 4229518 RMD160 2ae5904913e6f106da75df641cbcad9c3a202bdb SHA1 ec30089a879ea15f68dc3f86d0b4cc6b1d60bbb1 SHA256 6534450fef981502d5e540464fe0d4332e0f47704548354b59af90eaf290cf93 DIST sdcc-src-2.7.0.tar.bz2 3405687 RMD160 8056b35c87a55cffa7e313fb0f180f464725f7a9 SHA1 f1bc9eda688216187d5a4c1ede9dbeb11d0d31e9 SHA256 315caf8b239dfe4f922f090f33d24e822eb49a1b443d4be020056c91277ffd95 DIST sdcc-src-2.8.0.tar.bz2 3460693 RMD160 b91d6ca5642011f0e735c63e0ed4bc6b33128b9f SHA1 487a9c576130bb1bfb225fe36984f485aac0f513 SHA256 cbb035699d8910c7ca2fa360a773504b44165e98042ed8c208fea2fe47a96557 +DIST sdcc-src-2.9.0.tar.bz2 3764926 RMD160 38f23365b676132651f0322779bff498eb7e2b8d SHA1 03308a233a67e7fdce3f7e4972acb8731ae42666 SHA256 5f48246ea233bcfa63fafc23898584388b207caa80c5cc21485f089c87eaf68b DIST sdcc-src-20060502.tar.gz 4145716 RMD160 9d66bba6c0f7712473b8d36ea6ee4b314a846230 SHA1 10638665cf27e5f63830723d7b7e5c736341e81c SHA256 4433dbafdf9dcc3b3528c9dbbcc1eb4c572c1ff2179286010c56fe529f90799e EBUILD sdcc-2.5.0_p20060502.ebuild 1685 RMD160 6a10a5fe2d41bb4d66ff23a5efd3b91db326129f SHA1 ccbc121042ce925aa7872b896d404e66c302cf26 SHA256 0e76f2a1e0b3d57622646497674f998cf52c22e2c7ded443d465e7156bd58830 EBUILD sdcc-2.6.0.ebuild 1577 RMD160 d329f21aaf869396f263553e38141858feb27983 SHA1 cea82a4b7f296c6b61ba5564a3bdc13c25018e4f SHA256 3bb6b398a01cb89a9cce2cc9999e1660fd751bbe26cff7391f8f6df4d5e644a4 EBUILD sdcc-2.7.0.ebuild 1579 RMD160 1a780dc6032104b25ca836ef3eb41938795b5b2f SHA1 296dc07d261ddc7d04fedf43de5a4d38f6c648db SHA256 23bc7739153df1455245842f525137acdc9192d83b7a3fda85bf263942d26383 EBUILD sdcc-2.8.0.ebuild 2091 RMD160 4d1d75514a42b1dde02e72cf85866229281bb7cd SHA1 839f413cc5af2b7c357b3f1e279626b2b0623a17 SHA256 c175cbe0bd81d986adce15cc936c91d672b28e6969271f897c6898b998b20d2d -MISC ChangeLog 6674 RMD160 d7a77a1f2ecca05b3f866a66f7a3c51528cd5478 SHA1 6722ff2ca1f9d4cbf64a64cfedb1b6686c9c0d07 SHA256 26c0119a432758347ec68e1f6aad0852a50fdc5ff61b0d0d7ee26b8cf1b42201 +EBUILD sdcc-2.9.0.ebuild 2396 RMD160 17ee8ac9c340d62323bd80ef4cec22fb294e17f5 SHA1 6f0fe23ac3dbbc33747543db7497e39088c69b7e SHA256 326504d5b4f77aa03bdd100a811f6fdc0c9fc054b2794c09367a33a19f7b2c4a +EBUILD sdcc-9999.ebuild 2107 RMD160 8933e0435a00aa84e9ae7e723eedbf4a871ccc85 SHA1 12816f03855266220a7286dca476c56e5de7c694 SHA256 1a8d446a21516aa8f36bfed89446eb0a11117447412f1a85db96b466cc733962 +MISC ChangeLog 7119 RMD160 0b177cc348f9583d95d6c7235df13a24210f7249 SHA1 775b4254d22fa30b9064196c570a1b6f0005f830 SHA256 fbef2cc0a5dc0014898e7f84f4b16b3ffe89e1dc87104be515bb522822e41207 MISC metadata.xml 371 RMD160 a7669f3a27e2ef27e4c28e775c094c76e17d7e92 SHA1 1c3f3979c3437b7f77b38f7e697fdc99719c4967 SHA256 436922a2a0e576d911c70892a4fefd75dcf8d1a41f6a4a7b47aa4d816a39a79e +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v2.0.16 (GNU/Linux) + +iF4EAREIAAYFAkyu5kYACgkQTwhj9JtAlp5thgD/fpdceTggg1nAc2eAbizQh/oA +Z1VI55woBvl1C0KLJWQA/1oGJzMbPBdiXjMrdV2Kk/r/q/39zI2ZoYDUaeWYq/pn +=m+Lj +-----END PGP SIGNATURE----- diff --git a/dev-embedded/sdcc/files/sdcc-2.9.0-build.patch b/dev-embedded/sdcc/files/sdcc-2.9.0-build.patch new file mode 100644 index 000000000000..b944b00d83a5 --- /dev/null +++ b/dev-embedded/sdcc/files/sdcc-2.9.0-build.patch @@ -0,0 +1,51 @@ +fix parallel build issues + +--- sdcc/device/lib/Makefile.in ++++ sdcc/device/lib/Makefile.in +@@ -347,37 +347,21 @@ + cp -f $(PORT)/bin/*.* $(SDCCPORTDIR); \ + fi + +-$(LIB_FILES): $(OBJECTS_FLOAT) $(OBJECTS_INT) $(OBJECTS_LONG) $(OBJECTS_SDCC) + ifeq ($(LIB_TYPE), SDCCLIB) +- ../../bin/sdcclib -a $(SDCCPORTDIR)/libfloat.lib $(OBJECTS_FLOAT) +- ../../bin/sdcclib -a $(SDCCPORTDIR)/libint.lib $(OBJECTS_INT) +- ../../bin/sdcclib -a $(SDCCPORTDIR)/liblong.lib $(OBJECTS_LONG) +- ../../bin/sdcclib -a $(SDCCPORTDIR)/libsdcc.lib $(OBJECTS_SDCC) ++mklib = ../../bin/sdcclib -a $@ $^ + else ifeq ($(LIB_TYPE), AR) +- ar -Scq $(SDCCPORTDIR)/libfloat.lib $(OBJECTS_FLOAT) +- ar -Scq $(SDCCPORTDIR)/libint.lib $(OBJECTS_INT) +- ar -Scq $(SDCCPORTDIR)/liblong.lib $(OBJECTS_LONG) +- ar -Scq $(SDCCPORTDIR)/libsdcc.lib $(OBJECTS_SDCC) ++mklib = ar -Scq $@ $^ + else ifeq ($(LIB_TYPE), RANLIB) +- ar -Scq $(SDCCPORTDIR)/libfloat.lib $(OBJECTS_FLOAT); $(top_builddir)/bin/asranlib $(SDCCPORTDIR)/libfloat.lib +- ar -Scq $(SDCCPORTDIR)/libint.lib $(OBJECTS_INT); $(top_builddir)/bin/asranlib $(SDCCPORTDIR)/libint.lib +- ar -Scq $(SDCCPORTDIR)/liblong.lib $(OBJECTS_LONG); $(top_builddir)/bin/asranlib $(SDCCPORTDIR)/liblong.lib +- ar -Scq $(SDCCPORTDIR)/libsdcc.lib $(OBJECTS_SDCC); $(top_builddir)/bin/asranlib $(SDCCPORTDIR)/libsdcc.lib ++mklib = ar -Scq $@ $^ && $(top_builddir)/bin/asranlib $@ + else +- rm -f $(SDCCPORTDIR)/libfloat.lib +- for i in $(notdir $(basename $(OBJECTS_FLOAT))); do echo $$i >> $(SDCCPORTDIR)/libfloat.lib; done +- cp $(OBJECTS_FLOAT) $(SDCCPORTDIR) +- rm -f $(SDCCPORTDIR)/libint.lib +- for i in $(notdir $(basename $(OBJECTS_INT))); do echo $$i >> $(SDCCPORTDIR)/libint.lib; done +- cp $(OBJECTS_INT) $(SDCCPORTDIR) +- rm -f $(SDCCPORTDIR)/liblong.lib +- for i in $(notdir $(basename $(OBJECTS_LONG))); do echo $$i >> $(SDCCPORTDIR)/liblong.lib; done +- cp $(OBJECTS_LONG) $(SDCCPORTDIR) +- rm -f $(SDCCPORTDIR)/libsdcc.lib +- for i in $(notdir $(basename $(OBJECTS_SDCC))); do echo $$i >> $(SDCCPORTDIR)/libsdcc.lib; done +- cp $(OBJECTS_SDCC) $(SDCCPORTDIR) ++mklib = for i in $(notdir $(basename $^)); do echo $$i; done >> $@; cp $^ $(SDCCPORTDIR) + endif + ++$(SDCCPORTDIR)/libfloat.lib: $(OBJECTS_FLOAT); $(mklib) ++$(SDCCPORTDIR)/libint.lib: $(OBJECTS_INT); $(mklib) ++$(SDCCPORTDIR)/liblong.lib: $(OBJECTS_LONG); $(mklib) ++$(SDCCPORTDIR)/libsdcc.lib: $(OBJECTS_SDCC); $(mklib) ++ + clean_intermediate: + rm -f $(SDCCPORTDIR)/*.lst $(SDCCPORTDIR)/*.sym + diff --git a/dev-embedded/sdcc/files/sdcc-2.9.0-gcc44.patch b/dev-embedded/sdcc/files/sdcc-2.9.0-gcc44.patch new file mode 100644 index 000000000000..fb4ac7918c51 --- /dev/null +++ b/dev-embedded/sdcc/files/sdcc-2.9.0-gcc44.patch @@ -0,0 +1,15 @@ +like fix already in upstream + +* sim/ucsim/cmd.src/cmdlex.cc: regenerated, + fix for parch #3038644: Fix for GCC-4.4 compile error + +--- trunk/sdcc/sim/ucsim/cmd.src/cmdlex.cc 2010/08/04 15:21:39 5910 ++++ trunk/sdcc/sim/ucsim/cmd.src/cmdlex.cc 2010/08/04 17:17:09 5911 +@@ -85,6 +85,7 @@ + #include <errno.h> + #include <cstdlib> + #include <cstring> ++#include <cstdio> + /* end standard C++ headers. */ + + #ifdef __cplusplus diff --git a/dev-embedded/sdcc/files/sdcc-2.9.0-getline.patch b/dev-embedded/sdcc/files/sdcc-2.9.0-getline.patch new file mode 100644 index 000000000000..f7ca6237cf57 --- /dev/null +++ b/dev-embedded/sdcc/files/sdcc-2.9.0-getline.patch @@ -0,0 +1,16 @@ +upstream has reworked their code, so just do a minimal hack for the older ver + +http://bugs.gentoo.org/270621 + +--- sdcc/as/link/getline.h ++++ sdcc/as/link/getline.h +@@ -30,6 +30,9 @@ + + #include <stdio.h> + ++#undef getline /* just in case */ ++#define getline sdcc_getline ++ + #ifdef __cplusplus + extern "C" + { diff --git a/dev-embedded/sdcc/files/sdcc-2.9.0-headers.patch b/dev-embedded/sdcc/files/sdcc-2.9.0-headers.patch new file mode 100644 index 000000000000..58d10299aa8f --- /dev/null +++ b/dev-embedded/sdcc/files/sdcc-2.9.0-headers.patch @@ -0,0 +1,209 @@ +fix from upstream for implicit decls + +--- trunk/sdcc/debugger/mcs51/sdcdb.c 2009/09/20 11:50:19 5517 ++++ trunk/sdcc/debugger/mcs51/sdcdb.c 2010/04/14 16:18:37 5813 +@@ -34,6 +34,10 @@ + #include <readline/readline.h> + #include <readline/history.h> + #endif /* HAVE_LIBREADLINE */ ++#ifdef HAVE_UNISTD_H ++#include <unistd.h> ++#endif ++#include <sys/wait.h> + + #ifdef SDCDB_DEBUG + int sdcdbDebug = 0; +@@ -1609,7 +1609,7 @@ static void parseCmdLine (int argc, char **argv) + } + + if (strncmp(argv[i],"-cd=",4) == 0) { +- chdir(argv[i][4]); ++ chdir(&argv[i][4]); + continue; + } + +--- trunk/sdcc/debugger/mcs51/config.h.in ++++ trunk/sdcc/debugger/mcs51/config.h.in +@@ -15,6 +15,10 @@ + + #undef HAVE_LIBREADLINE + ++#undef HAVE_UNISTD_H ++ ++#undef HAVE_SYS_WAIT_H ++ + #endif + + /* End of config.h */ + +fix from upstream for collision between "link" in unistd.h and local "link" + +--- trunk/sdcc/debugger/mcs51/symtab.h 2006/09/16 14:10:20 4379 ++++ trunk/sdcc/debugger/mcs51/symtab.h 2010/04/14 16:18:37 5813 +@@ -106,13 +106,13 @@ + short num_elem; /* # of elems if type==array */ + short ptr_const :1; /* pointer is constant */ + short ptr_volatile:1; /* pointer is volatile */ +- struct link *tspec; /* pointer type specifier */ ++ struct st_link *tspec; /* pointer type specifier */ + } declarator ; + + #define DECLARATOR 0 + #define SPECIFIER 1 + +-typedef struct link { ++typedef struct st_link { + unsigned class : 1 ; /* DECLARATOR or SPECIFIER */ + unsigned tdef : 1 ; /* current link created by */ + /* typedef if this flag is set*/ +@@ -121,8 +121,8 @@ + declarator d ; /* if CLASS == DECLARATOR */ + } select ; + +- struct link *next ; /* next element on the chain */ +-} link ; ++ struct st_link *next ; /* next element on the chain */ ++} st_link ; + + typedef struct symbol { + char *name ; +@@ -136,8 +136,8 @@ + unsigned addr ; /* address if the symbol */ + unsigned eaddr ; /* end address for functions */ + char addr_type ; /* which address space */ +- link *type ; /* start of type chain */ +- link *etype ; /* end of type chain */ ++ st_link *type ; /* start of type chain */ ++ st_link *etype ; /* end of type chain */ + char scopetype ; /* 'G' global, 'F' - file, 'L' local */ + char *sname ; /* if 'F' or 'L' then scope name */ + char *rname ; /* real name i.e. mangled beyond recognition */ +@@ -242,6 +242,6 @@ + DEFSETFUNC(moduleWithName); + DEFSETFUNC(moduleWithCName); + DEFSETFUNC(moduleWithAsmName); +-unsigned int getSize (link *); ++unsigned int getSize (st_link *); + + #endif + +--- a/sdcc/debugger/mcs51/symtab.c ++++ b/sdcc/debugger/mcs51/symtab.c +@@ -31,7 +31,7 @@ DEFSETFUNC(symWithRName); + /*------------------------------------------------------------------*/ + /* getSize - returns size of a type chain in bits */ + /*------------------------------------------------------------------*/ +-unsigned int getSize ( link *p ) ++unsigned int getSize ( st_link *p ) + { + /* if nothing return 0 */ + if ( ! p ) +@@ -127,8 +127,8 @@ static char *parseTypeInfo (symbol *sym, char *s) + /* bp now points to '}' ... go past it */ + s = ++bp; + while (*s != ')') { /* till we reach the end */ +- link *type; +- type = Safe_calloc(1,sizeof(link)); ++ st_link *type; ++ type = Safe_calloc(1,sizeof(st_link)); + if (*s == ',') s++; + + /* is a declarator */ +--- a/sdcc/debugger/mcs51/cmd.c ++++ b/sdcc/debugger/mcs51/cmd.c +@@ -327,8 +327,8 @@ static char *warranty= + "POSSIBILITY OF SUCH DAMAGES.\n"; + #endif + +-static void printTypeInfo(link *); +-static void printValAggregates (symbol *,link *,char,unsigned int,int); ++static void printTypeInfo(st_link *); ++static void printValAggregates (symbol *,st_link *,char,unsigned int,int); + static int printOrSetSymValue (symbol *sym, context *cctxt, + int flg, int dnum, int fmt, + char *rs, char *val, char cmp); +@@ -2323,7 +2323,7 @@ int cmdListSrc (char *s, context *cctxt) + return 0; + } + +-static unsigned long getValBasic(symbol *sym, link *type, char *val) ++static unsigned long getValBasic(symbol *sym, st_link *type, char *val) + { + char *s; + union +@@ -2347,7 +2347,7 @@ static unsigned long getValBasic(symbol *sym, link *type, char *val) + { + if (IS_INTEGRAL(type)) + { +- link *etype; ++ st_link *etype; + if ( type->next ) + etype = type->next; + else +@@ -2460,7 +2460,7 @@ static void printFmtInteger(char *deffmt,int fmt, long val, + /*-----------------------------------------------------------------*/ + /* printValBasic - print value of basic types */ + /*-----------------------------------------------------------------*/ +-static void printValBasic(symbol *sym, link *type, ++static void printValBasic(symbol *sym, st_link *type, + char mem, unsigned addr,int size, int fmt) + { + union { +@@ -2484,7 +2484,7 @@ static void printValBasic(symbol *sym, link *type, + else + if (IS_INTEGRAL(type)) + { +- link *etype; ++ st_link *etype; + if ( type->next ) + etype = type->next; + else +@@ -2534,10 +2534,10 @@ static void printValFunc (symbol *sym, int fmt) + /*-----------------------------------------------------------------*/ + /* printArrayValue - will print the values of array elements */ + /*-----------------------------------------------------------------*/ +-static void printArrayValue (symbol *sym, link *type, ++static void printArrayValue (symbol *sym, st_link *type, + char space, unsigned int addr, int fmt) + { +- link *elem_type = type->next; ++ st_link *elem_type = type->next; + int i; + + fprintf(stdout,"{"); +@@ -2558,7 +2558,7 @@ static void printArrayValue (symbol *sym, link *type, + /*-----------------------------------------------------------------*/ + /* printStructValue - prints structures elements */ + /*-----------------------------------------------------------------*/ +-static void printStructValue (symbol *sym, link *type, ++static void printStructValue (symbol *sym, st_link *type, + char space, unsigned int addr, int fmt) + { + symbol *fields = SPEC_STRUCT(type)->fields; +@@ -2581,7 +2581,7 @@ static void printStructValue (symbol *sym, link *type, + /*-----------------------------------------------------------------*/ + /* printValAggregates - print value of aggregates */ + /*-----------------------------------------------------------------*/ +-static void printValAggregates (symbol *sym, link *type, ++static void printValAggregates (symbol *sym, st_link *type, + char space,unsigned int addr, int fmt) + { + +@@ -2606,7 +2606,7 @@ static int printOrSetSymValue (symbol *sym, context *cctxt, + static char fmtChar[] = " todx "; + static int stack = 1; + symbol *fields; +- link *type; ++ st_link *type; + unsigned int addr; + int size, n; + char *s, *s2; +@@ -2808,7 +2808,7 @@ static void printStructInfo (structdef *sdef) + /*-----------------------------------------------------------------*/ + /* printTypeInfo - print out the type information */ + /*-----------------------------------------------------------------*/ +-static void printTypeInfo(link *p) ++static void printTypeInfo(st_link *p) + { + if (!p) + return ; diff --git a/dev-embedded/sdcc/files/sdcc-9999-build.patch b/dev-embedded/sdcc/files/sdcc-9999-build.patch new file mode 100644 index 000000000000..9af5080ecd9e --- /dev/null +++ b/dev-embedded/sdcc/files/sdcc-9999-build.patch @@ -0,0 +1,53 @@ +fix parallel build issues + +--- sdcc/device/lib/Makefile.in ++++ sdcc/device/lib/Makefile.in +@@ -349,40 +349,23 @@ + cp -f $(PORT)/bin/*.* $(SDCCPORTDIR); \ + fi + +-$(LIB_FILES): $(OBJECTS_FLOAT) $(OBJECTS_INT) $(OBJECTS_LONG) $(OBJECTS_SDCC) + ifeq ($(LIB_TYPE), SDCCLIB) +- ../../bin/sdcclib -a $(SDCCPORTDIR)/libfloat.lib $(OBJECTS_FLOAT) +- ../../bin/sdcclib -a $(SDCCPORTDIR)/libint.lib $(OBJECTS_INT) +- ../../bin/sdcclib -a $(SDCCPORTDIR)/liblong.lib $(OBJECTS_LONG) +- ../../bin/sdcclib -a $(SDCCPORTDIR)/libsdcc.lib $(OBJECTS_SDCC) ++ mklib = ../../bin/sdcclib -a $@ $^ + else + ifeq ($(LIB_TYPE), AR) +- $(AR_S) -cq $(SDCCPORTDIR)/libfloat.lib $(OBJECTS_FLOAT) +- $(AR_S) -cq $(SDCCPORTDIR)/libint.lib $(OBJECTS_INT) +- $(AR_S) -cq $(SDCCPORTDIR)/liblong.lib $(OBJECTS_LONG) +- $(AR_S) -cq $(SDCCPORTDIR)/libsdcc.lib $(OBJECTS_SDCC) ++ mklib = $(AR_S) -cq $@ $^ + else + ifeq ($(LIB_TYPE), RANLIB) +- $(AR_S) -cq $(SDCCPORTDIR)/libfloat.lib $(OBJECTS_FLOAT); $(top_builddir)/bin/asranlib $(SDCCPORTDIR)/libfloat.lib +- $(AR_S) -cq $(SDCCPORTDIR)/libint.lib $(OBJECTS_INT); $(top_builddir)/bin/asranlib $(SDCCPORTDIR)/libint.lib +- $(AR_S) -cq $(SDCCPORTDIR)/liblong.lib $(OBJECTS_LONG); $(top_builddir)/bin/asranlib $(SDCCPORTDIR)/liblong.lib +- $(AR_S) -cq $(SDCCPORTDIR)/libsdcc.lib $(OBJECTS_SDCC); $(top_builddir)/bin/asranlib $(SDCCPORTDIR)/libsdcc.lib ++ mklib = $(AR_S) -cq $@ $^ && $(top_builddir)/bin/asranlib $@ + else +- rm -f $(SDCCPORTDIR)/libfloat.lib +- for i in $(notdir $(basename $(OBJECTS_FLOAT))); do echo $$i >> $(SDCCPORTDIR)/libfloat.lib; done +- cp $(OBJECTS_FLOAT) $(SDCCPORTDIR) +- rm -f $(SDCCPORTDIR)/libint.lib +- for i in $(notdir $(basename $(OBJECTS_INT))); do echo $$i >> $(SDCCPORTDIR)/libint.lib; done +- cp $(OBJECTS_INT) $(SDCCPORTDIR) +- rm -f $(SDCCPORTDIR)/liblong.lib +- for i in $(notdir $(basename $(OBJECTS_LONG))); do echo $$i >> $(SDCCPORTDIR)/liblong.lib; done +- cp $(OBJECTS_LONG) $(SDCCPORTDIR) +- rm -f $(SDCCPORTDIR)/libsdcc.lib +- for i in $(notdir $(basename $(OBJECTS_SDCC))); do echo $$i >> $(SDCCPORTDIR)/libsdcc.lib; done +- cp $(OBJECTS_SDCC) $(SDCCPORTDIR) ++ mklib = for i in $(notdir $(basename $^)); do echo $$i; done >> $@ && cp $^ $(SDCCPORTDIR) + endif + endif + endif ++$(SDCCPORTDIR)/libfloat.lib: $(OBJECTS_FLOAT); $(mklib) ++$(SDCCPORTDIR)/libint.lib: $(OBJECTS_INT); $(mklib) ++$(SDCCPORTDIR)/liblong.lib: $(OBJECTS_LONG); $(mklib) ++$(SDCCPORTDIR)/libsdcc.lib: $(OBJECTS_SDCC); $(mklib) + + clean_intermediate: + rm -f $(SDCCPORTDIR)/*.lst $(SDCCPORTDIR)/*.sym diff --git a/dev-embedded/sdcc/sdcc-2.9.0.ebuild b/dev-embedded/sdcc/sdcc-2.9.0.ebuild new file mode 100644 index 000000000000..a28c4e1cb6a1 --- /dev/null +++ b/dev-embedded/sdcc/sdcc-2.9.0.ebuild @@ -0,0 +1,97 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-embedded/sdcc/sdcc-2.9.0.ebuild,v 1.1 2010/10/08 09:38:44 vapier Exp $ + +EAPI="2" + +inherit eutils + +if [[ ${PV} == "9999" ]] ; then + ESVN_REPO_URI="https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc" + inherit subversion autotools + docs_compile() { return 0; } +else + SRC_URI="mirror://sourceforge/sdcc/${PN}-src-${PV}.tar.bz2 + doc? ( mirror://sourceforge/sdcc/${PN}-doc-${PV}.tar.bz2 )" + KEYWORDS="~amd64 ~ppc ~x86" + docs_compile() { return 1; } +fi + +DESCRIPTION="Small device C compiler (for various microprocessors)" +HOMEPAGE="http://sdcc.sourceforge.net/" + +LICENSE="GPL-2" +SLOT="0" +IUSE="+boehm-gc doc" +RESTRICT="strip" + +RDEPEND="sys-libs/ncurses + sys-libs/readline + >=dev-embedded/gputils-0.13.7 + boehm-gc? ( dev-libs/boehm-gc ) + !dev-embedded/sdcc-svn" +DEPEND="${RDEPEND}" +if docs_compile ; then + DEPEND+=" + doc? ( + >=app-office/lyx-1.3.4 + dev-tex/latex2html + )" +fi + +S=${WORKDIR}/${PN} + +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 + + epatch "${FILESDIR}"/${P}-gcc44.patch + epatch "${FILESDIR}"/${P}-getline.patch + epatch "${FILESDIR}"/${P}-headers.patch + epatch "${FILESDIR}"/${P}-build.patch + + # We'll install doc manually + sed -i -e '/SDCC_DOC/d' Makefile.in || die + sed -i -e 's/all install-doc/all/' as/Makefile.in || die + sed -i -e 's/ doc//' sim/ucsim/packages_in.mk || die + + [[ ${PV} == "9999" ]] && eautoreconf +} + +src_configure() { + ac_cv_prog_STRIP=true \ + econf \ + $(use_enable boehm-gc libgc) \ + $(docs_compile && use_enable doc || echo --disable-doc) +} + +fsrc_compile() { + emake || die + if docs_compile && use doc ; then + cd doc + local d + for d in cdbfileformat sdccman test_suite_spec ; do + lyx -e html ${d} || die + done + fi +} + +src_install() { + emake DESTDIR="${D}" install || die + dodoc doc/*.txt doc/*/*.txt + find "${D}" -name .deps -exec rm -rf {} + + + if use doc ; then + docs_compile || cd "${WORKDIR}"/doc + dohtml -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. + env RESTRICT="" prepstrip "${D%/}"/usr/bin +} diff --git a/dev-embedded/sdcc/sdcc-9999.ebuild b/dev-embedded/sdcc/sdcc-9999.ebuild new file mode 100644 index 000000000000..926984d7b284 --- /dev/null +++ b/dev-embedded/sdcc/sdcc-9999.ebuild @@ -0,0 +1,85 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-embedded/sdcc/sdcc-9999.ebuild,v 1.1 2010/10/08 09:38:44 vapier Exp $ + +EAPI="2" + +inherit eutils + +if [[ ${PV} == "9999" ]] ; then + ESVN_REPO_URI="https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc" + inherit subversion autotools + docs_compile() { return 0; } +else + SRC_URI="mirror://sourceforge/sdcc/${PN}-src-${PV}.tar.bz2 + doc? ( mirror://sourceforge/sdcc/${PN}-doc-${PV}.tar.bz2 )" + KEYWORDS="~amd64 ~ppc ~x86" + docs_compile() { return 1; } +fi + +DESCRIPTION="Small device C compiler (for various microprocessors)" +HOMEPAGE="http://sdcc.sourceforge.net/" + +LICENSE="GPL-2" +SLOT="0" +IUSE="+boehm-gc doc" +RESTRICT="strip" + +RDEPEND="sys-libs/ncurses + sys-libs/readline + >=dev-embedded/gputils-0.13.7 + boehm-gc? ( dev-libs/boehm-gc ) + !dev-embedded/sdcc-svn" +DEPEND="${RDEPEND}" +if docs_compile ; then + DEPEND+=" + doc? ( + >=app-office/lyx-1.3.4 + dev-tex/latex2html + )" +fi + +S=${WORKDIR}/${PN} + +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 + + epatch "${FILESDIR}"/${P}-build.patch + + # We'll install doc manually + sed -i -e '/SDCC_DOC/d' Makefile.in || die + sed -i -e 's/ doc//' sim/ucsim/packages_in.mk || die + + [[ ${PV} == "9999" ]] && eautoreconf + + # workaround parallel build issues with lyx + mkdir -p "${HOME}"/.lyx +} + +src_configure() { + ac_cv_prog_STRIP=true \ + econf \ + $(use_enable boehm-gc libgc) \ + $(docs_compile && use_enable doc || echo --disable-doc) +} + +src_install() { + emake DESTDIR="${D}" install || die + dodoc doc/*.txt doc/*/*.txt + find "${D}" -name .deps -exec rm -rf {} + + + if use doc ; then + docs_compile || cd "${WORKDIR}"/doc + dohtml -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. + env RESTRICT="" prepstrip "${D%/}"/usr/bin +} |