summaryrefslogtreecommitdiff
path: root/package/libgc
diff options
context:
space:
mode:
Diffstat (limited to 'package/libgc')
-rw-r--r--package/libgc/Makefile35
-rw-r--r--package/libgc/patches/patch-os_dep_c39
2 files changed, 74 insertions, 0 deletions
diff --git a/package/libgc/Makefile b/package/libgc/Makefile
new file mode 100644
index 000000000..731c7f98b
--- /dev/null
+++ b/package/libgc/Makefile
@@ -0,0 +1,35 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:= libgc
+PKG_VERSION:= 7.4.0
+PKG_RELEASE:= 2
+PKG_MD5SUM:= f40d9a47c90d60791eeecb484f8df5ee
+PKG_DESCR:= garbage collector library
+PKG_SECTION:= libs
+PKG_BUILDDEP:= libatomic_ops
+HOST_BUILDDEP:= libatomic_ops-host
+PKG_URL:= http://www.hboehm.info/gc/
+PKG_SITES:= http://www.hboehm.info/gc/gc_source/
+PKG_OPTS:= dev
+
+DISTFILES= gc-${PKG_VERSION}.tar.gz
+WRKDIST= ${WRKDIR}/gc-${PKG_VERSION}
+
+include $(TOPDIR)/mk/host.mk
+include $(TOPDIR)/mk/package.mk
+
+$(eval $(call HOST_template,LIBGC,libgc,$(PKG_VERSION)-${PKG_RELEASE}))
+$(eval $(call PKG_template,LIBGC,libgc,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS}))
+
+HOST_STYLE:= auto
+
+libgc-install:
+ $(INSTALL_DIR) $(IDIR_LIBGC)/usr/lib
+ $(CP) $(WRKINST)/usr/lib/libgc*.so* \
+ $(IDIR_LIBGC)/usr/lib
+
+include ${TOPDIR}/mk/host-bottom.mk
+include ${TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/libgc/patches/patch-os_dep_c b/package/libgc/patches/patch-os_dep_c
new file mode 100644
index 000000000..6a5e00f87
--- /dev/null
+++ b/package/libgc/patches/patch-os_dep_c
@@ -0,0 +1,39 @@
+--- gc-7.4.0.orig/os_dep.c 2013-11-15 21:11:03.000000000 +0100
++++ gc-7.4.0/os_dep.c 2014-04-10 07:14:09.000000000 +0200
+@@ -16,36 +16,6 @@
+
+ #include "private/gc_priv.h"
+
+-#if defined(LINUX) && !defined(POWERPC) && !defined(NO_SIGCONTEXT_H)
+-# include <linux/version.h>
+-# if (LINUX_VERSION_CODE <= 0x10400)
+- /* Ugly hack to get struct sigcontext_struct definition. Required */
+- /* for some early 1.3.X releases. Will hopefully go away soon. */
+- /* in some later Linux releases, asm/sigcontext.h may have to */
+- /* be included instead. */
+-# define __KERNEL__
+-# include <asm/signal.h>
+-# undef __KERNEL__
+-# else
+- /* Kernels prior to 2.1.1 defined struct sigcontext_struct instead of */
+- /* struct sigcontext. libc6 (glibc2) uses "struct sigcontext" in */
+- /* prototypes, so we have to include the top-level sigcontext.h to */
+- /* make sure the former gets defined to be the latter if appropriate. */
+-# include <features.h>
+-# if 2 <= __GLIBC__
+-# if 2 == __GLIBC__ && 0 == __GLIBC_MINOR__
+- /* glibc 2.1 no longer has sigcontext.h. But signal.h */
+- /* has the right declaration for glibc 2.1. */
+-# include <sigcontext.h>
+-# endif /* 0 == __GLIBC_MINOR__ */
+-# else /* __GLIBC__ < 2 */
+- /* libc5 doesn't have <sigcontext.h>: go directly with the kernel */
+- /* one. Check LINUX_VERSION_CODE to see which we should reference. */
+-# include <asm/sigcontext.h>
+-# endif /* __GLIBC__ < 2 */
+-# endif
+-#endif /* LINUX && !POWERPC */
+-
+ #if !defined(OS2) && !defined(PCR) && !defined(AMIGA) && !defined(MACOS) \
+ && !defined(MSWINCE) && !defined(__CC_ARM)
+ # include <sys/types.h>