Control: tags -1 + pending

2018-02-25 01:52 Manuel A. Fernandez Montecelo:
Source: libgc
Version: 1:7.4.2-8.1
Severity: normal
Tags: patch upstream fixed-upstream
User: [email protected]
Usertags: riscv64
Forwarded: 
https://github.com/ivmai/bdwgc/commit/4f7f0eebd24dcde9f2b3ec2cb98913fc39bbdda3

Hello,

We need support in this package for RISC-V, to bootstrap the riscv64
architecture.

A patch has been submitted upstream a few days ago, so it would be great if you
could include it as a patch and release a new version for unstable.

If we can help by NMUing the package or anything else, please let me/us know.

Since the package maintenance doesn't seem to be very active lately and this
package is quite critical for the (any) port, I plan to NMU if no reply is
received in a few days/weeks.

Uploading NMU to delayed/2 (almost a month passed already without
reply).  Please let me know if you want me to cancel it.

I tested it in many porterboxes (mips*, arm*, ppc64el, s390x) and it
built fine in all except armel, where it FTBFS for weeks.

debdiff attached.  It needed to update to the symbols file, apart from
the patch that I pointed to originally.


Cheers.
--
Manuel A. Fernandez Montecelo <[email protected]>
diff -Nru libgc-7.4.2/debian/changelog libgc-7.4.2/debian/changelog
--- libgc-7.4.2/debian/changelog        2018-01-12 14:11:35.000000000 +0100
+++ libgc-7.4.2/debian/changelog        2018-03-17 00:06:37.000000000 +0100
@@ -1,3 +1,14 @@
+libgc (1:7.4.2-8.2) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * Add support for the riscv64 architecture (Closes: #891382)
+    - debian/patches/riscv-support.patch
+      + commit 4f7f0eebd24dcde9f2b3ec2cb98913fc39bbdda3 from upstream's
+        repository, refreshed to un-fuzz
+    - Update symbols file
+
+ -- Manuel A. Fernandez Montecelo <[email protected]>  Sat, 17 Mar 2018 00:06:37 
+0100
+
 libgc (1:7.4.2-8.1) unstable; urgency=medium
 
   * Non-maintainer upload.
diff -Nru libgc-7.4.2/debian/libgc1c2.symbols 
libgc-7.4.2/debian/libgc1c2.symbols
--- libgc-7.4.2/debian/libgc1c2.symbols 2018-01-12 14:11:01.000000000 +0100
+++ libgc-7.4.2/debian/libgc1c2.symbols 2018-03-16 23:41:04.000000000 +0100
@@ -1,4 +1,4 @@
-# SymbolsHelper-Confirmed: 1:7.4.2 alpha amd64 arm64 armel armhf hppa 
hurd-i386 i386 ia64 kfreebsd-amd64 kfreebsd-i386 mips mips64el mipsel powerpc 
powerpcspe ppc64 ppc64el s390x x32
+# SymbolsHelper-Confirmed: 1:7.4.2 alpha amd64 arm64 armel armhf hppa 
hurd-i386 i386 ia64 kfreebsd-amd64 kfreebsd-i386 mips mips64el mipsel powerpc 
powerpcspe ppc64 ppc64el riscv64 s390x x32
 libgc.so.1 libgc1c2 #MINVER#
  (arch=armel)AO_compare_double_and_swap_double_emulation@Base 1:7.4.2
  (arch=armel)AO_fetch_compare_and_swap_emulation@Base 1:7.4.2
@@ -9,8 +9,8 @@
  GC_FirstDLOpenedLinkMap@Base 1:7.2d
  (arch=kfreebsd-amd64 kfreebsd-i386)GC_FreeBSDGetDataStart@Base 1:7.2d
  (arch=sparc sparc64)GC_SysVGetDataStart@Base 1:7.2d
- (arch=!arm64 !nios2 !hppa !hurd-i386 !kfreebsd-amd64 !kfreebsd-i386 !ppc64el 
!sh3 !sh4)GC_acquire_mark_lock@Base 1:7.4.2
- (arch=!arm64 !nios2 !hppa !hurd-i386 !kfreebsd-amd64 !kfreebsd-i386 !ppc64el 
!sh3 !sh4)GC_active_count@Base 1:7.4.2
+ (arch=!arm64 !nios2 !hppa !hurd-i386 !kfreebsd-amd64 !kfreebsd-i386 !ppc64el 
!riscv64 !sh3 !sh4)GC_acquire_mark_lock@Base 1:7.4.2
+ (arch=!arm64 !nios2 !hppa !hurd-i386 !kfreebsd-amd64 !kfreebsd-i386 !ppc64el 
!riscv64 !sh3 !sh4)GC_active_count@Base 1:7.4.2
  GC_add_ext_descriptor@Base 1:7.2d
  GC_add_map_entry@Base 1:7.2d
  GC_add_roots@Base 1:7.2d
@@ -27,8 +27,8 @@
  GC_alloc_large@Base 1:7.2d
  GC_alloc_large_and_clear@Base 1:7.2d
  GC_alloc_reclaim_list@Base 1:7.2d
- (arch=arm64 nios2 hppa ppc64el sh4)GC_allocate_lock@Base 1:7.4.2
- (arch=!arm64 !nios2 !hppa !ppc64el !sh3 !sh4)GC_allocate_ml@Base 1:7.4.2
+ (arch=arm64 nios2 hppa ppc64el riscv64 sh4)GC_allocate_lock@Base 1:7.4.2
+ (arch=!arm64 !nios2 !hppa !ppc64el !riscv64 !sh3 !sh4)GC_allocate_ml@Base 
1:7.4.2
  GC_allochblk@Base 1:7.2d
  GC_allochblk_nth@Base 1:7.2d
  GC_allocobj@Base 1:7.2d
@@ -59,7 +59,7 @@
  GC_build_fl@Base 1:7.2d
  GC_build_fl_clear2@Base 1:7.2d
  GC_build_fl_clear4@Base 1:7.2d
- (arch=!arm64 !nios2 !hppa !hurd-i386 !kfreebsd-amd64 !kfreebsd-i386 !ppc64el 
!sh3 !sh4)GC_bytes_allocd_tmp@Base 1:7.4.2
+ (arch=!arm64 !nios2 !hppa !hurd-i386 !kfreebsd-amd64 !kfreebsd-i386 !ppc64el 
!riscv64 !sh3 !sh4)GC_bytes_allocd_tmp@Base 1:7.4.2
  GC_bytes_found@Base 1:7.2d
  GC_call_with_alloc_lock@Base 1:7.2d
  GC_call_with_gc_active@Base 1:7.2d
@@ -94,12 +94,12 @@
  GC_continue_reclaim@Base 1:7.2d
  GC_copy_bl@Base 1:7.2d
  GC_copyright@Base 1:7.2d
- (arch=!arm64 !nios2 !hppa !ppc64el !sh3 !sh4)GC_core_finalized_malloc@Base 
1:7.4.2
- (arch=!arm64 !nios2 !hppa !ppc64el !sh3 !sh4)GC_core_gcj_malloc@Base 1:7.4.2
- (arch=!arm64 !nios2 !hppa !ppc64el !sh3 !sh4)GC_core_malloc@Base 1:7.4.2
- (arch=!arm64 !nios2 !hppa !ppc64el !sh3 !sh4)GC_core_malloc_atomic@Base 
1:7.4.2
+ (arch=!arm64 !nios2 !hppa !ppc64el !riscv64 !sh3 
!sh4)GC_core_finalized_malloc@Base 1:7.4.2
+ (arch=!arm64 !nios2 !hppa !ppc64el !riscv64 !sh3 !sh4)GC_core_gcj_malloc@Base 
1:7.4.2
+ (arch=!arm64 !nios2 !hppa !ppc64el !riscv64 !sh3 !sh4)GC_core_malloc@Base 
1:7.4.2
+ (arch=!arm64 !nios2 !hppa !ppc64el !riscv64 !sh3 
!sh4)GC_core_malloc_atomic@Base 1:7.4.2
  GC_current_warn_proc@Base 1:7.2d
- (arch=!arm64 !nios2 !kfreebsd-amd64 !kfreebsd-i386 !mips !mips64el !mipsel 
!s390 !s390x !sparc !sparc64)GC_data_start@Base 1:7.2d
+ (arch=!arm64 !nios2 !kfreebsd-amd64 !kfreebsd-i386 !mips !mips64el !mipsel 
!riscv64 !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
@@ -139,7 +139,7 @@
  GC_delete_thread@Base 1:7.2d
  GC_descr_obj_size@Base 1:7.2d
  GC_describe_type_fns@Base 1:7.2d
- (arch=!arm64 !nios2 !hppa !ppc64el !sh3 !sh4)GC_destroy_thread_local@Base 
1:7.4.2
+ (arch=!arm64 !nios2 !hppa !ppc64el !riscv64 !sh3 
!sh4)GC_destroy_thread_local@Base 1:7.4.2
  GC_dirty_init@Base 1:7.2d
  GC_dirty_maintained@Base 1:7.2d
  GC_disable@Base 1:7.2d
@@ -149,8 +149,8 @@
  GC_dlopen@Base 1:7.2d
  GC_do_blocking@Base 1:7.2d
  GC_do_blocking_inner@Base 1:7.2d
- (arch=!arm64 !nios2 !hppa !hurd-i386 !kfreebsd-amd64 !kfreebsd-i386 !ppc64el 
!sh3 !sh4)GC_do_local_mark@Base 1:7.4.2
- (arch=!arm64 !nios2 !hppa !hurd-i386 !kfreebsd-amd64 !kfreebsd-i386 !ppc64el 
!sh3 !sh4)GC_do_parallel_mark@Base 1:7.4.2
+ (arch=!arm64 !nios2 !hppa !hurd-i386 !kfreebsd-amd64 !kfreebsd-i386 !ppc64el 
!riscv64 !sh3 !sh4)GC_do_local_mark@Base 1:7.4.2
+ (arch=!arm64 !nios2 !hppa !hurd-i386 !kfreebsd-amd64 !kfreebsd-i386 !ppc64el 
!riscv64 !sh3 !sh4)GC_do_parallel_mark@Base 1:7.4.2
  GC_dont_expand@Base 1:7.2d
  GC_dont_gc@Base 1:7.2d
  GC_dont_precollect@Base 1:7.2d
@@ -180,7 +180,7 @@
  GC_ext_descriptors@Base 1:7.2d
  GC_extend_size_map@Base 1:7.2d
  GC_fail_count@Base 1:7.2d
- (arch=!arm64 !nios2 !mips !mips64el !mipsel !s390 
!s390x)GC_fault_handler@Base 1:7.2d
+ (arch=!arm64 !nios2 !mips !mips64el !mipsel !riscv64 !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
@@ -193,12 +193,12 @@
  GC_finalizer_notifier@Base 1:7.2d
  GC_find_header@Base 1:7.2d
  GC_find_leak@Base 1:7.2d
- (arch=!arm64 !nios2 !mips !mips64el !mipsel !s390 !s390x)GC_find_limit@Base 
1:7.2d
- (arch=!arm64 !nios2 !mips !mips64el !mipsel !s390 
!s390x)GC_find_limit_with_bound@Base 1:7.2d
+ (arch=!arm64 !nios2 !mips !mips64el !mipsel !riscv64 !s390 
!s390x)GC_find_limit@Base 1:7.2d
+ (arch=!arm64 !nios2 !mips !mips64el !mipsel !riscv64 !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
- (arch=!arm64 !nios2 !hppa !hurd-i386 !kfreebsd-amd64 !kfreebsd-i386 !ppc64el 
!sh3 !sh4)GC_first_nonempty@Base 1:7.4.2
- (arch=!arm64 !nios2 !hppa !hurd-i386 !kfreebsd-amd64 !kfreebsd-i386 !ppc64el 
!sh3 !sh4)GC_fl_builder_count@Base 1:7.4.2
+ (arch=!arm64 !nios2 !hppa !hurd-i386 !kfreebsd-amd64 !kfreebsd-i386 !ppc64el 
!riscv64 !sh3 !sh4)GC_first_nonempty@Base 1:7.4.2
+ (arch=!arm64 !nios2 !hppa !hurd-i386 !kfreebsd-amd64 !kfreebsd-i386 !ppc64el 
!riscv64 !sh3 !sh4)GC_fl_builder_count@Base 1:7.4.2
  GC_fo_entries@Base 1:7.2d
  GC_fo_head@Base 1:7.4.2
  GC_force_unmap_on_gcollect@Base 1:7.2d
@@ -222,7 +222,7 @@
  GC_gcollect@Base 1:7.2d
  GC_gcollect_and_unmap@Base 1:7.2d
  GC_general_register_disappearing_link@Base 1:7.2d
- (arch=!arm64 !nios2 !hppa !ppc64el !sh3 !sh4)GC_generic_lock@Base 1:7.4.2
+ (arch=!arm64 !nios2 !hppa !ppc64el !riscv64 !sh3 !sh4)GC_generic_lock@Base 
1:7.4.2
  GC_generic_malloc@Base 1:7.2d
  GC_generic_malloc_ignore_off_page@Base 1:7.2d
  GC_generic_malloc_inner@Base 1:7.2d
@@ -283,9 +283,9 @@
  GC_hblk_fl_from_blocks@Base 1:7.2d
  GC_hblkfreelist@Base 1:7.2d
  GC_header_cache_miss@Base 1:7.2d
- (arch=!arm64 !nios2 !hppa !hurd-i386 !kfreebsd-amd64 !kfreebsd-i386 !ppc64el 
!sh3 !sh4)GC_help_marker@Base 1:7.4.2
- (arch=!arm64 !nios2 !hppa !hurd-i386 !kfreebsd-amd64 !kfreebsd-i386 !ppc64el 
!sh3 !sh4)GC_help_wanted@Base 1:7.4.2
- (arch=!arm64 !nios2 !hppa !hurd-i386 !kfreebsd-amd64 !kfreebsd-i386 !ppc64el 
!sh3 !sh4)GC_helper_count@Base 1:7.4.2
+ (arch=!arm64 !nios2 !hppa !hurd-i386 !kfreebsd-amd64 !kfreebsd-i386 !ppc64el 
!riscv64 !sh3 !sh4)GC_help_marker@Base 1:7.4.2
+ (arch=!arm64 !nios2 !hppa !hurd-i386 !kfreebsd-amd64 !kfreebsd-i386 !ppc64el 
!riscv64 !sh3 !sh4)GC_help_wanted@Base 1:7.4.2
+ (arch=!arm64 !nios2 !hppa !hurd-i386 !kfreebsd-amd64 !kfreebsd-i386 !ppc64el 
!riscv64 !sh3 !sh4)GC_helper_count@Base 1:7.4.2
  GC_ignore_self_finalize_mark_proc@Base 1:7.2d
  GC_ignore_warn_proc@Base 1:7.2d
  GC_in_thread_creation@Base 1:7.2d
@@ -300,10 +300,10 @@
  GC_init_finalized_malloc@Base 1:7.4.2
  GC_init_gcj_malloc@Base 1:7.2d
  GC_init_headers@Base 1:7.2d
- (arch=!arm64 !nios2 !kfreebsd-amd64 !kfreebsd-i386 !mips !mips64el !mipsel 
!s390 !s390x !sparc !sparc64)GC_init_linux_data_start@Base 1:7.2d
+ (arch=!arm64 !nios2 !kfreebsd-amd64 !kfreebsd-i386 !mips !mips64el !mipsel 
!riscv64 !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
- (arch=!arm64 !nios2 !hppa !ppc64el !sh3 !sh4)GC_init_thread_local@Base 1:7.4.2
+ (arch=!arm64 !nios2 !hppa !ppc64el !riscv64 !sh3 
!sh4)GC_init_thread_local@Base 1:7.4.2
  GC_initialize_offsets@Base 1:7.2d
  GC_initiate_gc@Base 1:7.2d
  GC_inner_start_routine@Base 1:7.2d
@@ -322,7 +322,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=!arm64 !nios2 !mips !mips64el !mipsel !s390 !s390x)GC_jmp_buf@Base 
1:7.2d
+ (arch=!arm64 !nios2 !mips !mips64el !mipsel !riscv64 !s390 
!s390x)GC_jmp_buf@Base 1:7.2d
  (arch=hurd-i386)GC_key_create_inner@Base 1:7.4.2
  GC_large_alloc_warn_interval@Base 1:7.2d
  GC_large_alloc_warn_suppressed@Base 1:7.2d
@@ -352,16 +352,16 @@
  GC_mark_and_push_stack@Base 1:7.2d
  GC_mark_from@Base 1:7.2d
  GC_mark_init@Base 1:7.2d
- (arch=!arm64 !nios2 !hppa !hurd-i386 !kfreebsd-amd64 !kfreebsd-i386 !ppc64el 
!sh3 !sh4)GC_mark_local@Base 1:7.4.2
- (arch=!arm64 !nios2 !hppa !hurd-i386 !kfreebsd-amd64 !kfreebsd-i386 !ppc64el 
!sh3 !sh4)GC_mark_no@Base 1:7.4.2
+ (arch=!arm64 !nios2 !hppa !hurd-i386 !kfreebsd-amd64 !kfreebsd-i386 !ppc64el 
!riscv64 !sh3 !sh4)GC_mark_local@Base 1:7.4.2
+ (arch=!arm64 !nios2 !hppa !hurd-i386 !kfreebsd-amd64 !kfreebsd-i386 !ppc64el 
!riscv64 !sh3 !sh4)GC_mark_no@Base 1:7.4.2
  GC_mark_some@Base 1:7.2d
  GC_mark_stack_size@Base 1:7.2d
  GC_mark_stack_too_small@Base 1:7.2d
  GC_mark_state@Base 1:7.2d
- (arch=!arm64 !nios2 !hppa !hurd-i386 !kfreebsd-amd64 !kfreebsd-i386 !ppc64el 
!sh3 !sh4)GC_mark_thread@Base 1:7.4.2
- (arch=!arm64 !nios2 !hppa !ppc64el !sh3 
!sh4)GC_mark_thread_local_fls_for@Base 1:7.4.2
- (arch=!arm64 !nios2 !hppa !ppc64el !sh3 
!sh4)GC_mark_thread_local_free_lists@Base 1:7.4.2
- (arch=!arm64 !nios2 !hppa !hurd-i386 !kfreebsd-amd64 !kfreebsd-i386 !ppc64el 
!sh3 !sh4)GC_mark_threads@Base 1:7.4.2
+ (arch=!arm64 !nios2 !hppa !hurd-i386 !kfreebsd-amd64 !kfreebsd-i386 !ppc64el 
!riscv64 !sh3 !sh4)GC_mark_thread@Base 1:7.4.2
+ (arch=!arm64 !nios2 !hppa !ppc64el !riscv64 !sh3 
!sh4)GC_mark_thread_local_fls_for@Base 1:7.4.2
+ (arch=!arm64 !nios2 !hppa !ppc64el !riscv64 !sh3 
!sh4)GC_mark_thread_local_free_lists@Base 1:7.4.2
+ (arch=!arm64 !nios2 !hppa !hurd-i386 !kfreebsd-amd64 !kfreebsd-i386 !ppc64el 
!riscv64 !sh3 !sh4)GC_mark_threads@Base 1:7.4.2
  GC_max_heapsize@Base 1:7.4.2
  GC_max_retries@Base 1:7.2d
  GC_maybe_gc@Base 1:7.2d
@@ -397,8 +397,8 @@
  GC_noop6@Base 1:7.4.2
  GC_noop_sink@Base 1:7.2d
  GC_normal_finalize_mark_proc@Base 1:7.2d
- (arch=!arm64 !nios2 !hppa !hurd-i386 !kfreebsd-amd64 !kfreebsd-i386 !ppc64el 
!sh3 !sh4)GC_notify_all_builder@Base 1:7.4.2
- (arch=!arm64 !nios2 !hppa !hurd-i386 !kfreebsd-amd64 !kfreebsd-i386 !ppc64el 
!sh3 !sh4)GC_notify_all_marker@Base 1:7.4.2
+ (arch=!arm64 !nios2 !hppa !hurd-i386 !kfreebsd-amd64 !kfreebsd-i386 !ppc64el 
!riscv64 !sh3 !sh4)GC_notify_all_builder@Base 1:7.4.2
+ (arch=!arm64 !nios2 !hppa !hurd-i386 !kfreebsd-amd64 !kfreebsd-i386 !ppc64el 
!riscv64 !sh3 !sh4)GC_notify_all_marker@Base 1:7.4.2
  GC_notify_or_invoke_finalizers@Base 1:7.2d
  GC_nprocs@Base 1:7.2d
  GC_null_finalize_mark_proc@Base 1:7.2d
@@ -465,7 +465,7 @@
  GC_push_current_stack@Base 1:7.2d
  GC_push_finalizer_structures@Base 1:7.2d
  GC_push_gc_structures@Base 1:7.2d
- (arch=arm64 nios2 hppa hurd-i386 kfreebsd-amd64 kfreebsd-i386 ppc64el 
sh4)GC_push_marked1@Base 1:7.4.2
+ (arch=arm64 nios2 hppa hurd-i386 kfreebsd-amd64 kfreebsd-i386 ppc64el riscv64 
sh4)GC_push_marked1@Base 1:7.4.2
  (arch=!alpha !amd64 !armel !armhf !i386 !ia64 !m68k !mips !mips64el !mipsel 
!powerpc !powerpcspe !ppc64 !s390x !sparc !sparc64 !x32)GC_push_marked2@Base 
1:7.4.2
  (arch=!alpha !amd64 !armel !armhf !i386 !ia64 !m68k !mips !mips64el !mipsel 
!powerpc !powerpcspe !ppc64 !s390x !sparc !sparc64 !x32)GC_push_marked4@Base 
1:7.4.2
  GC_push_marked@Base 1:7.2d
@@ -515,7 +515,7 @@
  GC_register_my_thread@Base 1:7.2d
  GC_register_my_thread_inner@Base 1:7.2d
  (arch=ia64)GC_register_stackbottom@Base 1:7.2d
- (arch=!arm64 !nios2 !hppa !hurd-i386 !kfreebsd-amd64 !kfreebsd-i386 !ppc64el 
!sh3 !sh4)GC_release_mark_lock@Base 1:7.4.2
+ (arch=!arm64 !nios2 !hppa !hurd-i386 !kfreebsd-amd64 !kfreebsd-i386 !ppc64el 
!riscv64 !sh3 !sh4)GC_release_mark_lock@Base 1:7.4.2
  GC_remove_all_threads_but_me@Base 1:7.4.2
  GC_remove_allowed_signals@Base 1:7.2d
  GC_remove_counts@Base 1:7.2d
@@ -528,11 +528,11 @@
  (arch=hurd-i386)GC_remove_specific@Base 1:7.4.2
  GC_remove_tmp_roots@Base 1:7.2d
  (arch=!hurd-i386 !kfreebsd-amd64 !kfreebsd-i386)GC_repeat_read@Base 1:7.2d
- (arch=!arm64 !nios2 !mips !mips64el !mipsel !s390 
!s390x)GC_reset_fault_handler@Base 1:7.2d
+ (arch=!arm64 !nios2 !mips !mips64el !mipsel !riscv64 !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
- (arch=!arm64 !nios2 !hppa !hurd-i386 !kfreebsd-amd64 !kfreebsd-i386 !ppc64el 
!sh3 !sh4)GC_return_mark_stack@Base 1:7.4.2
+ (arch=!arm64 !nios2 !hppa !hurd-i386 !kfreebsd-amd64 !kfreebsd-i386 !ppc64el 
!riscv64 !sh3 !sh4)GC_return_mark_stack@Base 1:7.4.2
  GC_root_size@Base 1:7.2d
  GC_roots_present@Base 1:7.2d
  GC_same_obj@Base 1:7.2d
@@ -572,7 +572,7 @@
  GC_set_warn_proc@Base 1:7.2d
  GC_setpagesize@Base 1:7.2d
  (arch=hurd-i386)GC_setspecific@Base 1:7.4.2
- (arch=!arm64 !nios2 !mips !mips64el !mipsel !s390 
!s390x)GC_setup_temporary_fault_handler@Base 1:7.2d
+ (arch=!arm64 !nios2 !mips !mips64el !mipsel !riscv64 !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_sig_suspend@Base 1:7.4.2
@@ -594,7 +594,7 @@
  GC_start_world@Base 1:7.2d
  GC_stderr@Base 1:7.2d
  GC_stdout@Base 1:7.2d
- (arch=!arm64 !nios2 !hppa !hurd-i386 !kfreebsd-amd64 !kfreebsd-i386 !ppc64el 
!sh3 !sh4)GC_steal_mark_stack@Base 1:7.4.2
+ (arch=!arm64 !nios2 !hppa !hurd-i386 !kfreebsd-amd64 !kfreebsd-i386 !ppc64el 
!riscv64 !sh3 !sh4)GC_steal_mark_stack@Base 1:7.4.2
  GC_stop_count@Base 1:7.2d
  GC_stop_init@Base 1:7.2d
  GC_stop_world@Base 1:7.2d
@@ -611,7 +611,7 @@
  GC_thr_initialized@Base 1:7.2d
  GC_thread_exit_proc@Base 1:7.2d
  GC_thread_is_registered@Base 1:7.4.2
- (arch=!arm64 !nios2 !hppa !ppc64el !sh3 !sh4)GC_thread_key@Base 1:7.4.2
+ (arch=!arm64 !nios2 !hppa !ppc64el !riscv64 !sh3 !sh4)GC_thread_key@Base 
1:7.4.2
  GC_threads@Base 1:7.2d
  GC_time_limit@Base 1:7.2d
  GC_timeout_stop_func@Base 1:7.2d
@@ -635,16 +635,17 @@
  GC_use_entire_heap@Base 1:7.2d
  GC_used_heap_size_after_full@Base 1:7.2d
  GC_version@Base 1:7.2d
- (arch=!arm64 !nios2 !hppa !hurd-i386 !kfreebsd-amd64 !kfreebsd-i386 !ppc64el 
!sh3 !sh4)GC_wait_builder@Base 1:7.4.2
+ (arch=!arm64 !nios2 !hppa !hurd-i386 !kfreebsd-amd64 !kfreebsd-i386 !ppc64el 
!riscv64 !sh3 !sh4)GC_wait_builder@Base 1:7.4.2
  GC_wait_for_gc_completion@Base 1:7.2d
- (arch=!arm64 !nios2 !hppa !hurd-i386 !kfreebsd-amd64 !kfreebsd-i386 !ppc64el 
!sh3 !sh4)GC_wait_for_reclaim@Base 1:7.4.2
- (arch=!arm64 !nios2 !hppa !hurd-i386 !kfreebsd-amd64 !kfreebsd-i386 !ppc64el 
!sh3 !sh4)GC_wait_marker@Base 1:7.4.2
+ (arch=!arm64 !nios2 !hppa !hurd-i386 !kfreebsd-amd64 !kfreebsd-i386 !ppc64el 
!riscv64 !sh3 !sh4)GC_wait_for_reclaim@Base 1:7.4.2
+ (arch=!arm64 !nios2 !hppa !hurd-i386 !kfreebsd-amd64 !kfreebsd-i386 !ppc64el 
!riscv64 !sh3 !sh4)GC_wait_marker@Base 1:7.4.2
  GC_with_callee_saves_pushed@Base 1:7.2d
  GC_world_is_stopped@Base 1:7.2d
- (arch=!arm64 !nios2 !hppa !ppc64el !sh3 !sh4)GC_world_stopped@Base 1:7.4.2
+ (arch=!arm64 !nios2 !hppa !ppc64el !riscv64 !sh3 !sh4)GC_world_stopped@Base 
1:7.4.2
  GC_write@Base 1:7.2d
  (arch=alpha amd64 i386 ia64 m68k x32)GC_write_fault_handler@Base 1:7.2d
  (arch=sparc sparc64)_etext@Base 1:7.2d
+ (arch=riscv64)end@Base 1:7.4.2
  (arch=kfreebsd-amd64 kfreebsd-i386)etext@Base 1:7.2d
 libgccpp.so.1 libgc1c2 #MINVER#
  _ZdaPv@Base 1:7.2d
@@ -652,4 +653,5 @@
  (subst)_Zna{size_t}@Base 1:7.2d
  (subst)_Znw{size_t}@Base 1:7.2d
  (arch=sparc sparc64)_etext@Base 1:7.2d
+ (arch=riscv64)end@Base 1:7.4.2
  (arch=kfreebsd-amd64 kfreebsd-i386)etext@Base 1:7.2d
diff -Nru libgc-7.4.2/debian/patches/riscv-support.patch 
libgc-7.4.2/debian/patches/riscv-support.patch
--- libgc-7.4.2/debian/patches/riscv-support.patch      1970-01-01 
01:00:00.000000000 +0100
+++ libgc-7.4.2/debian/patches/riscv-support.patch      2018-03-15 
19:30:40.000000000 +0100
@@ -0,0 +1,72 @@
+From 4f7f0eebd24dcde9f2b3ec2cb98913fc39bbdda3 Mon Sep 17 00:00:00 2001
+From: Shea Levy <[email protected]>
+Date: Sun, 18 Feb 2018 01:37:12 -0500
+Subject: [PATCH] Add initial RISC-V support
+
+Issue #208 (bdwgc).
+
+* include/private/gcconfig.h [__riscv && LINUX && __riscv_xlen==32]
+(RISCV32, mach_type_known): Define macro.
+* include/private/gcconfig.h [__riscv && LINUX && __riscv_xlen==64]
+(RISCV64, mach_type_known): Define macro.
+* include/private/gcconfig.h [RISCV32 || RISCV64] (CPP_WORDSZ,
+MACH_TYPE, ALIGNMENT): Likewise.
+* include/private/gcconfig.h [(RISCV32 || RISCV64) && LINUX] (OS_TYPE,
+DATASTART, LINUX_STACKBOTTOM, DYNAMIC_LOADING): Likewise.
+* include/private/gcconfig.h [(RISCV32 || RISCV64) && LINUX]
+(__data_start): Declare external variable.
+---
+ include/private/gcconfig.h | 35 +++++++++++++++++++++++++++++++++++
+ 1 file changed, 35 insertions(+)
+
+--- a/include/private/gcconfig.h
++++ b/include/private/gcconfig.h
+@@ -557,6 +557,15 @@
+ # if defined(SYMBIAN)
+ #   define mach_type_known
+ # endif
++# if defined(__riscv) && defined(LINUX)
++#   if __riscv_xlen == 32
++#     define RISCV32
++#     define mach_type_known
++#   elif __riscv_xlen == 64
++#     define RISCV64
++#     define mach_type_known
++#   endif
++# endif
+ 
+ /* Feel free to add more clauses here */
+ 
+@@ -2398,6 +2407,32 @@
+ #   endif
+ # endif
+ 
++# ifdef RISCV32
++#   define CPP_WORDSZ 32
++#   define MACH_TYPE "RISC-V32"
++#   define ALIGNMENT 4
++#   ifdef LINUX
++#     define OS_TYPE "LINUX"
++      extern int __data_start[];
++#     define DATASTART ((ptr_t)__data_start)
++#     define LINUX_STACKBOTTOM
++#     define DYNAMIC_LOADING
++#   endif
++# endif /* RISCV32 */
++
++# ifdef RISCV64
++#   define CPP_WORDSZ 64
++#   define MACH_TYPE "RISC-V64"
++#   define ALIGNMENT 8
++#   ifdef LINUX
++#     define OS_TYPE "LINUX"
++      extern int __data_start[];
++#     define DATASTART ((ptr_t)__data_start)
++#     define LINUX_STACKBOTTOM
++#     define DYNAMIC_LOADING
++#   endif
++# endif /* RISCV64 */
++
+ #if defined(__GLIBC__) && !defined(DONT_USE_LIBC_PRIVATES)
+   /* Use glibc's stack-end marker. */
+ # define USE_LIBC_PRIVATES
diff -Nru libgc-7.4.2/debian/patches/series libgc-7.4.2/debian/patches/series
--- libgc-7.4.2/debian/patches/series   2016-05-17 16:27:01.000000000 +0200
+++ libgc-7.4.2/debian/patches/series   2018-03-15 19:30:25.000000000 +0100
@@ -2,3 +2,4 @@
 enable-threads-on-hurd.diff
 enable-parallel-mark-where-supported.diff
 fix-location-of-assembly-files.diff
+riscv-support.patch

Reply via email to