Package: racket
Version: 6.1-4
Severity: normal
Tags: patch
User: ubuntu-de...@lists.ubuntu.com
Usertags: origin-ubuntu vivid ubuntu-patch

Dear Maintainer,

Currently, racket FTBFS on arm64 due to it not being properly defined in the gc 
library that is embedded in the package. This fix doesn't completely fix the 
FTBFS (the build hangs, just like on ppc64el), but it is a step in the right 
direction.

In Ubuntu, the attached patch was applied to achieve the following:

  * debian/patches/0002-aarch64.patch: Add support for aarch64 (arm64) in
    the gc library (pulled/modified from boehm-gc upstream Git).

Thanks for considering the patch.

Logan Rosen

-- System Information:
Debian Release: jessie/sid
  APT prefers vivid-updates
  APT policy: (500, 'vivid-updates'), (500, 'vivid-security'), (500, 'vivid'), 
(100, 'vivid-backports')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.16.0-28-generic (SMP w/1 CPU core)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: upstart (via init_is_upstart())
diff -Nru racket-6.1/debian/patches/0002-aarch64.patch racket-6.1/debian/patches/0002-aarch64.patch
--- racket-6.1/debian/patches/0002-aarch64.patch	1969-12-31 19:00:00.000000000 -0500
+++ racket-6.1/debian/patches/0002-aarch64.patch	2014-12-27 00:39:28.000000000 -0500
@@ -0,0 +1,83 @@
+From 7b5acfba9a1df00f0427d1d2e1a92570da3ab2d1 Mon Sep 17 00:00:00 2001
+From: Yvan Roux <yvan.r...@linaro.org>
+Date: Wed, 23 Jan 2013 23:15:57 +0400
+Subject: [PATCH] Add AArch64 (64-bit ARM) target support
+
+* include/private/gcconfig.h (AARCH64): New macro (defined only if
+__aarch64__).
+* include/private/gcconfig.h (mach_type_known): Update comment adding
+ARM AArch64 target.
+* include/private/gcconfig.h (NOSYS, mach_type_known, CPP_WORDSZ,
+MACH_TYPE, ALIGNMENT, HBLKSIZE, OS_TYPE, LINUX_STACKBOTTOM,
+DYNAMIC_LOADING, DATASTART, DATAEND, STACKBOTTOM): Define for AArch64.
+---
+ include/private/gcconfig.h | 37 +++++++++++++++++++++++++++++++++++++
+ 1 file changed, 37 insertions(+)
+
+--- a/src/racket/gc/include/private/gcconfig.h
++++ b/src/racket/gc/include/private/gcconfig.h
+@@ -76,6 +76,13 @@
+ # endif
+ 
+ /* Determine the machine type: */
++# if defined(__aarch64__)
++#    define AARCH64
++#    if !defined(LINUX)
++#      define NOSYS
++#      define mach_type_known
++#    endif
++# endif
+ # if defined(__arm__) || defined(__thumb__)
+ #    define ARM32
+ #    if !defined(LINUX) && !defined(NETBSD) && !defined(OPENBSD)
+@@ -249,6 +256,10 @@
+ #    define IA64
+ #    define mach_type_known
+ # endif
++# if defined(LINUX) && defined(__aarch64__)
++#    define AARCH64
++#    define mach_type_known
++# endif
+ # if defined(LINUX) && defined(__arm__)
+ #    define ARM32
+ #    define mach_type_known
+@@ -529,6 +540,7 @@
+ 		    /* 			running Amdahl UTS4		*/
+                     /*             S390       ==> 390-like machine      */
+ 		    /*                  running LINUX                   */
++		    /*             AARCH64    ==> ARM AArch64           */
+ 		    /* 		   ARM32      ==> Intel StrongARM	*/
+ 		    /* 		   IA64	      ==> Intel IPF		*/
+ 		    /*				  (e.g. Itanium)	*/
+@@ -1818,6 +1830,31 @@
+ #   endif
+ # endif
+ 
++# ifdef AARCH64
++#   define CPP_WORDSZ 64
++#   define MACH_TYPE "AARCH64"
++#   define ALIGNMENT 8
++#   ifndef HBLKSIZE
++#     define HBLKSIZE 4096
++#   endif
++#   ifdef LINUX
++#     define OS_TYPE "LINUX"
++#     define LINUX_STACKBOTTOM
++#     define DYNAMIC_LOADING
++      extern int __data_start[];
++#     define DATASTART ((ptr_t)__data_start)
++      extern char _end[];
++#     define DATAEND ((ptr_t)(&_end))
++#   endif
++#   ifdef NOSYS
++      /* __data_start is usually defined in the target linker script.   */
++      extern int __data_start[];
++#     define DATASTART ((ptr_t)__data_start)
++      extern void *__stack_base__;
++#     define STACKBOTTOM ((ptr_t)__stack_base__)
++#   endif
++# endif
++
+ # ifdef ARM32
+ #   define CPP_WORDSZ 32
+ #   define MACH_TYPE "ARM32"
diff -Nru racket-6.1/debian/patches/series racket-6.1/debian/patches/series
--- racket-6.1/debian/patches/series	2014-10-24 04:38:05.000000000 -0400
+++ racket-6.1/debian/patches/series	2014-12-27 00:34:13.000000000 -0500
@@ -1,2 +1,3 @@
 # debian/source/git-patches exported from git by quilt-patches-deb-export-hook
 0001-turn-off-anti-aliasing-for-plot-output.patch
+0002-aarch64.patch

Reply via email to