tags 732349 + pending
thanks

Dear maintainer,

This bug has been pending for a while, and needs fixing for new ports,
including arm64 which is building now:
(http://buildd.debian-ports.org/status/architecture.php?a=arm64&suite=sid).

So I've prepared an NMU for libgc (versioned as 1:7.2d-6.1) and
uploaded it to DELAYED/7. Feel free to override it with your own
upload or ask for changes if there are issues with this patch.

The details of the autoreconf fixes have been discussed above, so I
won't repeat that here. 

Cheers

diff -Nru libgc-7.2d/debian/changelog libgc-7.2d/debian/changelog
--- libgc-7.2d/debian/changelog	2013-12-23 11:49:36.000000000 +0000
+++ libgc-7.2d/debian/changelog	2014-07-03 01:31:40.000000000 +0100
@@ -1,3 +1,11 @@
+libgc (1:7.2d-6.1) unstable; urgency=low
+
+  * Non-maintainer upload.
+  * Use dh-autoreconf in build to support new architectures (Closes: #732349)
+  * Add aarch64/arm64 support: gcconfig.h and symbols file 
+
+ -- Wookey <[email protected]>  Thu, 3 Jul 2014 01:25:03 +0000
+
 libgc (1:7.2d-6) unstable; urgency=medium
 
   * Run full autoreconf during build
diff -Nru libgc-7.2d/debian/control libgc-7.2d/debian/control
--- libgc-7.2d/debian/control	2013-12-23 11:28:03.000000000 +0000
+++ libgc-7.2d/debian/control	2014-07-03 01:28:14.000000000 +0100
@@ -3,7 +3,8 @@
 Section: libs
 Priority: standard
 Build-Depends: debhelper (>= 9),
- autoconf,
+ dh-autoreconf,
+ autotools-dev,
  libatomic-ops-dev (>= 7.3~),
  pkg-config,
  pkg-kde-tools
diff -Nru libgc-7.2d/debian/libgc1c2.symbols libgc-7.2d/debian/libgc1c2.symbols
--- libgc-7.2d/debian/libgc1c2.symbols	2013-12-23 11:45:23.000000000 +0000
+++ libgc-7.2d/debian/libgc1c2.symbols	2014-07-03 01:28:14.000000000 +0100
@@ -84,7 +84,7 @@
  GC_core_malloc@Base 1:7.2d
  GC_core_malloc_atomic@Base 1:7.2d
  GC_current_warn_proc@Base 1:7.2d
- (arch=!kfreebsd-amd64 !kfreebsd-i386 !mips !mipsel !s390 !s390x !sparc !sparc64)GC_data_start@Base 1:7.2d
+ (arch=!arm64 !kfreebsd-amd64 !kfreebsd-i386 !mips !mipsel !s390 !s390x !sparc !sparc64)GC_data_start@Base 1:7.2d
  GC_debug_change_stubborn@Base 1:7.2d
  GC_debug_end_stubborn_change@Base 1:7.2d
  GC_debug_free@Base 1:7.2d
@@ -159,7 +159,7 @@
  GC_ext_descriptors@Base 1:7.2d
  GC_extend_size_map@Base 1:7.2d
  GC_fail_count@Base 1:7.2d
- (arch=!mips !mipsel !s390 !s390x)GC_fault_handler@Base 1:7.2d
+ (arch=!arm64 !mips !mipsel !s390 !s390x)GC_fault_handler@Base 1:7.2d
  (arch=alpha amd64 i386 ia64 m68k x32)GC_fault_handler_lock@Base 1:7.2d
  GC_finalize@Base 1:7.2d
  GC_finalize_all@Base 1:7.2d
@@ -168,8 +168,8 @@
  GC_finalizer_notifier@Base 1:7.2d
  GC_find_header@Base 1:7.2d
  GC_find_leak@Base 1:7.2d
- (arch=!mips !mipsel !s390 !s390x)GC_find_limit@Base 1:7.2d
- (arch=!mips !mipsel !s390 !s390x)GC_find_limit_with_bound@Base 1:7.2d
+ (arch=!arm64 !mips !mipsel !s390 !s390x)GC_find_limit@Base 1:7.2d
+ (arch=!arm64 !mips !mipsel !s390 !s390x)GC_find_limit_with_bound@Base 1:7.2d
  GC_findleak_delay_free@Base 1:7.2d
  GC_finish_collection@Base 1:7.2d
  GC_fo_entries@Base 1:7.2d
@@ -265,7 +265,7 @@
  GC_init_explicit_typing@Base 1:7.2d
  GC_init_gcj_malloc@Base 1:7.2d
  GC_init_headers@Base 1:7.2d
- (arch=!kfreebsd-amd64 !kfreebsd-i386 !mips !mipsel !s390 !s390x !sparc !sparc64)GC_init_linux_data_start@Base 1:7.2d
+ (arch=!arm64 !kfreebsd-amd64 !kfreebsd-i386 !mips !mipsel !s390 !s390x !sparc !sparc64)GC_init_linux_data_start@Base 1:7.2d
  GC_init_parallel@Base 1:7.2d
  GC_init_size_map@Base 1:7.2d
  GC_init_thread_local@Base 1:7.2d
@@ -286,7 +286,7 @@
  GC_is_visible@Base 1:7.2d
  GC_is_visible_print_proc@Base 1:7.2d
  GC_java_finalization@Base 1:7.2d
- (arch=!mips !mipsel !s390 !s390x)GC_jmp_buf@Base 1:7.2d
+ (arch=!arm64 !mips !mipsel !s390 !s390x)GC_jmp_buf@Base 1:7.2d
  (arch=armel armhf hurd-i386)GC_key_create@Base 1:7.2d
  GC_large_alloc_warn_interval@Base 1:7.2d
  GC_large_alloc_warn_suppressed@Base 1:7.2d
@@ -477,7 +477,7 @@
  (arch=armel armhf hurd-i386)GC_remove_specific@Base 1:7.2d
  GC_remove_tmp_roots@Base 1:7.2d
  (arch=!hurd-i386 !kfreebsd-amd64 !kfreebsd-i386)GC_repeat_read@Base 1:7.2d
- (arch=!mips !mipsel !s390 !s390x)GC_reset_fault_handler@Base 1:7.2d
+ (arch=!arm64 !mips !mipsel !s390 !s390x)GC_reset_fault_handler@Base 1:7.2d
  GC_reset_finalizer_nested@Base 1:7.2d
  GC_restart_handler@Base 1:7.2d
  GC_retry_signals@Base 1:7.2d
@@ -515,7 +515,7 @@
  GC_set_warn_proc@Base 1:7.2d
  GC_setpagesize@Base 1:7.2d
  (arch=armel armhf hurd-i386)GC_setspecific@Base 1:7.2d
- (arch=!mips !mipsel !s390 !s390x)GC_setup_temporary_fault_handler@Base 1:7.2d
+ (arch=!arm64 !mips !mipsel !s390 !s390x)GC_setup_temporary_fault_handler@Base 1:7.2d
  GC_should_collect@Base 1:7.2d
  GC_should_invoke_finalizers@Base 1:7.2d
  GC_signal_mark_stack_overflow@Base 1:7.2d
@@ -582,7 +582,7 @@
 libgccpp.so.1 libgc1c2 #MINVER#
  _ZdaPv@Base 1:7.2d
  _ZdlPv@Base 1:7.2d
- (subst)_Zna{size_t}@Base 1:7.2d
- (subst)_Znw{size_t}@Base 1:7.2d
+ (arch=!arm64|subst)_Zna{size_t}@Base 1:7.2d
+ (arch=!arm64|subst)_Znw{size_t}@Base 1:7.2d
  (arch=sparc sparc64)_etext@Base 1:7.2d
  (arch=kfreebsd-amd64 kfreebsd-i386)etext@Base 1:7.2d
diff -Nru libgc-7.2d/debian/patches/arm64.diff libgc-7.2d/debian/patches/arm64.diff
--- libgc-7.2d/debian/patches/arm64.diff	1970-01-01 01:00:00.000000000 +0100
+++ libgc-7.2d/debian/patches/arm64.diff	2014-07-03 01:28:14.000000000 +0100
@@ -0,0 +1,70 @@
+Index: libgc-7.2d/include/private/gcconfig.h
+===================================================================
+--- libgc-7.2d.orig/include/private/gcconfig.h
++++ libgc-7.2d/include/private/gcconfig.h
+@@ -70,6 +70,13 @@
+ #    define I386
+ #    define mach_type_known
+ # endif
++#if defined(__aarch64__)
++#    define AARCH64
++#    if !defined(LINUX)
++#      define NOSYS
++#      define mach_type_known
++#    endif
++# endif
+ # if defined(__arm) || defined(__arm__) || defined(__thumb__)
+ #    define ARM32
+ #    if !defined(LINUX) && !defined(NETBSD) && !defined(OPENBSD) \
+@@ -250,6 +257,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) || defined(__arm__))
+ #    define ARM32
+ #    define mach_type_known
+@@ -541,6 +552,7 @@
+                     /*                  running Amdahl UTS4             */
+                     /*             S390       ==> 390-like machine      */
+                     /*                  running LINUX                   */
++                    /*             AARCH64    ==> ARM AArch64           */
+                     /*             ARM32      ==> Intel StrongARM       */
+                     /*             IA64       ==> Intel IPF             */
+                     /*                            (e.g. Itanium)        */
+@@ -1903,6 +1915,32 @@
+ #   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 USE_GENERIC_PUSH_REGS
++#     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 libgc-7.2d/debian/patches/series libgc-7.2d/debian/patches/series
--- libgc-7.2d/debian/patches/series	2013-12-23 11:25:50.000000000 +0000
+++ libgc-7.2d/debian/patches/series	2014-07-03 01:28:14.000000000 +0100
@@ -5,3 +5,4 @@
 #05-s390-includes.diff
 enable-threads.diff
 allow-automake-1.13
+arm64.diff
diff -Nru libgc-7.2d/debian/rules libgc-7.2d/debian/rules
--- libgc-7.2d/debian/rules	2013-12-23 11:28:27.000000000 +0000
+++ libgc-7.2d/debian/rules	2014-07-03 01:28:14.000000000 +0100
@@ -8,11 +8,12 @@
 LDFLAGS += -pthread
 
 %:
-	dh $@ --with pkgkde_symbolshelper
+	dh $@ --with autotools-dev,autoreconf,pkgkde_symbolshelper
 
 override_dh_auto_configure:
 	[ ! -d libatomic_ops-1.2 ] || mv libatomic_ops-1.2 libatomic_ops-1.2.bak
 	autoconf
+	EXTRA_TEST_LIBS="-lpthread" \
 	./configure \
 		$(CONFIG_OPTS) \
 		--enable-cplusplus \
@@ -27,11 +28,10 @@
 		--build=$(DEB_BUILD_GNU_TYPE) \
 		--libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH)
 
-override_dh_autoreconf:
-	dh_autoreconf ./autogen.sh
-
 override_dh_auto_test:
+ifeq (,$(findstring nocheck, $(DEB_BUILD_OPTIONS)))
 	$(MAKE) check
+endif
 
 override_dh_install:
 	install -D doc/gc.man debian/tmp/usr/share/man/man3/gc_malloc.3

Reply via email to