diff options
Diffstat (limited to 'tools/sdcc')
-rw-r--r-- | tools/sdcc/Makefile | 43 | ||||
-rw-r--r-- | tools/sdcc/patches/100-workaround-gcc-4.6.2-hang.patch | 20 | ||||
-rw-r--r-- | tools/sdcc/patches/200-fix_order_of_linking.patch | 92 |
3 files changed, 155 insertions, 0 deletions
diff --git a/tools/sdcc/Makefile b/tools/sdcc/Makefile new file mode 100644 index 000000000..3210bb3e7 --- /dev/null +++ b/tools/sdcc/Makefile @@ -0,0 +1,43 @@ +# +# Copyright (C) 2012 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# +include $(TOPDIR)/rules.mk + +PKG_NAME:=sdcc +PKG_VERSION:=3.0.0 + +PKG_SOURCE:=$(PKG_NAME)-src-$(PKG_VERSION).tar.bz2 +PKG_SOURCE_URL:=@SF/$(PKG_NAME) +PKG_MD5SUM:=20fbd49a3421e09fe65577c45524c89e + +HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/$(PKG_NAME) + +include $(INCLUDE_DIR)/host-build.mk + +HOST_LDFLAGS += $(HOST_STATIC_LINKING) +HOST_CONFIGURE_ARGS += \ + --disable-ucsim \ + --enable-packihx \ + --enable-sdcpp \ + --disable-sdcdb \ + --disable-gbz80-port \ + --disable-z80-port \ + --disable-ds390-port \ + --disable-ds400-port \ + --disable-pic-port \ + --disable-pic16-port \ + --disable-hc08-port \ + --disable-avr-port \ + --disable-xa51-port \ + --enable-mcs51-port \ + --enable-device-lib \ + +define Host/Clean + -$(MAKE) -C $(HOST_BUILD_DIR) uninstall + $(call Host/Clean/Default) +endef + +$(eval $(call HostBuild)) diff --git a/tools/sdcc/patches/100-workaround-gcc-4.6.2-hang.patch b/tools/sdcc/patches/100-workaround-gcc-4.6.2-hang.patch new file mode 100644 index 000000000..71db14f81 --- /dev/null +++ b/tools/sdcc/patches/100-workaround-gcc-4.6.2-hang.patch @@ -0,0 +1,20 @@ +--- a/src/SDCCicode.c ++++ b/src/SDCCicode.c +@@ -1130,6 +1130,9 @@ iCode *getBuiltinParms (iCode *ic, int * + return ic; + } + ++#pragma GCC push_options ++#pragma GCC optimize ("O0") ++ + /*-----------------------------------------------------------------*/ + /* operandOperation - performs operations on operands */ + /*-----------------------------------------------------------------*/ +@@ -1405,6 +1408,7 @@ operandOperation (operand * left, operan + + return retval; + } ++#pragma GCC pop_options + + + /*-----------------------------------------------------------------*/ diff --git a/tools/sdcc/patches/200-fix_order_of_linking.patch b/tools/sdcc/patches/200-fix_order_of_linking.patch new file mode 100644 index 000000000..644349755 --- /dev/null +++ b/tools/sdcc/patches/200-fix_order_of_linking.patch @@ -0,0 +1,92 @@ +diff --git a/sdcc/sdas/as6808/Makefile.in b/sdcc/sdas/as6808/Makefile.in +index 5041265..0b8732e 100644 +--- a/sdas/as6808/Makefile.in ++++ b/sdas/as6808/Makefile.in +@@ -36,7 +36,8 @@ VPATH = @srcdir@ + + CPPFLAGS = @CPPFLAGS@ -DSDCDB -DNOICE -DINDEXLIB -I. -I$(srcdir) -I$(srcdir)/../asxxsrc -I$(srcdir)/../../support/Util + CFLAGS = @CFLAGS@ @WALL_FLAG@ $(CPPFLAGS) +-LDFLAGS = @LDFLAGS@ -lm ++LDFLAGS = @LDFLAGS@ ++LIBS = -lm + + OBJDIR = obj + +@@ -65,7 +66,7 @@ transform = @program_transform_name@ + all: checkconf $(ASX) + + $(ASX): $(ASOBJECTS) +- $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(ASOBJECTS) ++ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(ASOBJECTS) $(LIBS) + + # Compiling and installing everything and running test + # ---------------------------------------------------- +diff --git a/sdcc/sdas/as8051/Makefile.in b/sdcc/sdas/as8051/Makefile.in +index 8fa5946..fde3001 100644 +--- a/sdas/as8051/Makefile.in ++++ b/sdas/as8051/Makefile.in +@@ -36,7 +36,8 @@ VPATH = @srcdir@ + + CPPFLAGS = @CPPFLAGS@ -DSDCDB -DNOICE -DINDEXLIB -I. -I$(srcdir) -I$(srcdir)/../asxxsrc -I$(srcdir)/../../support/Util + CFLAGS = @CFLAGS@ @WALL_FLAG@ $(CPPFLAGS) +-LDFLAGS = @LDFLAGS@ -lm ++LDFLAGS = @LDFLAGS@ ++LIBS = -lm + + OBJDIR = obj + +@@ -65,7 +66,7 @@ transform = @program_transform_name@ + all: checkconf $(ASX) + + $(ASX): $(ASOBJECTS) +- $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(ASOBJECTS) ++ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(ASOBJECTS) $(LIBS) + + # Compiling and installing everything and running test + # ---------------------------------------------------- +diff --git a/sdcc/sdas/asgb/Makefile.in b/sdcc/sdas/asgb/Makefile.in +index 2763b3f..f9afb23 100644 +--- a/sdas/asgb/Makefile.in ++++ b/sdas/asgb/Makefile.in +@@ -36,7 +36,8 @@ VPATH = @srcdir@ + + CPPFLAGS = @CPPFLAGS@ -DSDCDB -DNOICE -DINDEXLIB -I. -I$(srcdir) -I$(srcdir)/../asxxsrc -I$(srcdir)/../../support/Util + CFLAGS = @CFLAGS@ @WALL_FLAG@ $(CPPFLAGS) +-LDFLAGS = @LDFLAGS@ -lm ++LDFLAGS = @LDFLAGS@ ++LIBS = -lm + + OBJDIR = obj + +@@ -65,7 +66,7 @@ transform = @program_transform_name@ + all: checkconf $(ASX) + + $(ASX): $(ASOBJECTS) +- $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(ASOBJECTS) ++ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(ASOBJECTS) $(LIBS) + + # Compiling and installing everything and running test + # ---------------------------------------------------- +diff --git a/sdcc/sdas/asz80/Makefile.in b/sdcc/sdas/asz80/Makefile.in +index d2bf1ac..89bd91c 100644 +--- a/sdas/asz80/Makefile.in ++++ b/sdas/asz80/Makefile.in +@@ -36,7 +36,8 @@ VPATH = @srcdir@ + + CPPFLAGS = @CPPFLAGS@ -DSDCDB -DNOICE -DINDEXLIB -I. -I$(srcdir) -I$(srcdir)/../asxxsrc -I$(srcdir)/../../support/Util + CFLAGS = @CFLAGS@ @WALL_FLAG@ $(CPPFLAGS) +-LDFLAGS = @LDFLAGS@ -lm ++LDFLAGS = @LDFLAGS@ ++LIBS = -lm + + OBJDIR = obj + +@@ -65,7 +66,7 @@ transform = @program_transform_name@ + all: checkconf $(ASX) + + $(ASX): $(ASOBJECTS) +- $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(ASOBJECTS) ++ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(ASOBJECTS) $(LIBS) + + # Compiling and installing everything and running test + # ---------------------------------------------------- |