Source: libgc
Version: 1:8.0.4-3
Tags: patch
User: helm...@debian.org
Usertags: rebootstrap
User: debian-cr...@lists.debian.org
Usertags: ftcbfs

libgc fails to cross build from source for nios2 due to symbol
differences. A closer look reveals that nios2 is one of the few
architectures where the cross build does not enable the use of atomic
builtins, but a native build does. Once enabled, we get a very different
and larger pile of symbol differences that look much more reasonable.
Looks like the previous symbol update wasn't correct. Please consider
applying the attached patch to fix that.

Helmut
diff --minimal -Nru libgc-8.0.4/debian/changelog libgc-8.0.4/debian/changelog
--- libgc-8.0.4/debian/changelog        2020-12-06 12:44:00.000000000 +0100
+++ libgc-8.0.4/debian/changelog        2021-07-20 06:30:56.000000000 +0200
@@ -1,3 +1,10 @@
+libgc (1:8.0.4-3.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Also use atomic builtins on nios2 and adapt symbol file. (Closes: #-1)
+
+ -- Helmut Grohne <hel...@subdivi.de>  Tue, 20 Jul 2021 06:30:56 +0200
+
 libgc (1:8.0.4-3) unstable; urgency=medium
 
   * Fix cross/native difference: explicitly disable usage of
diff --minimal -Nru libgc-8.0.4/debian/libgc1.symbols 
libgc-8.0.4/debian/libgc1.symbols
--- libgc-8.0.4/debian/libgc1.symbols   2020-10-27 14:07:51.000000000 +0100
+++ libgc-8.0.4/debian/libgc1.symbols   2021-07-20 06:30:54.000000000 +0200
@@ -4,8 +4,8 @@
  (arch=kfreebsd-amd64 kfreebsd-i386)GC_FreeBSDGetDataStart@Base 1:7.2d
  (arch=sparc sparc64)GC_SysVGetDataStart@Base 1:7.2d
  GC_abort_on_oom@Base 1:8.0
- (arch=!nios2 !sh4)GC_acquire_mark_lock@Base 1:8.0
- (arch=!nios2 !sh4)GC_active_count@Base 1:8.0
+ (arch=!sh4)GC_acquire_mark_lock@Base 1:8.0
+ (arch=!sh4)GC_active_count@Base 1:8.0
  GC_add_ext_descriptor@Base 1:7.2d
  GC_add_map_entry@Base 1:7.2d
  GC_add_roots@Base 1:7.2d
@@ -53,7 +53,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=!nios2 !sh4)GC_bytes_allocd_tmp@Base 1:8.0
+ (arch=!sh4)GC_bytes_allocd_tmp@Base 1:8.0
  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
@@ -146,8 +146,8 @@
  GC_do_blocking@Base 1:7.2d
  GC_do_blocking_inner@Base 1:7.2d
  GC_do_enumerate_reachable_objects@Base 1:7.6.4
- (arch=!nios2 !sh4)GC_do_local_mark@Base 1:8.0
- (arch=!nios2 !sh4)GC_do_parallel_mark@Base 1:8.0
+ (arch=!sh4)GC_do_local_mark@Base 1:8.0
+ (arch=!sh4)GC_do_parallel_mark@Base 1:8.0
  GC_dont_expand@Base 1:7.2d
  GC_dont_gc@Base 1:7.2d
  GC_dont_precollect@Base 1:7.2d
@@ -194,8 +194,8 @@
  (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=!nios2 !sh4)GC_first_nonempty@Base 1:8.0
- (arch=!nios2 !sh4)GC_fl_builder_count@Base 1:8.0
+ (arch=!sh4)GC_first_nonempty@Base 1:8.0
+ (arch=!sh4)GC_fl_builder_count@Base 1:8.0
  GC_fnlz_roots@Base 1:7.6.4
  GC_fo_entries@Base 1:7.2d
  GC_force_unmap_on_gcollect@Base 1:7.2d
@@ -295,9 +295,9 @@
  GC_hblkfreelist@Base 1:7.2d
  GC_header_cache_miss@Base 1:7.2d
  GC_heapsize_at_forced_unmap@Base 1:7.6.4
- (arch=!nios2 !sh4)GC_help_marker@Base 1:8.0
- (arch=!nios2 !sh4)GC_help_wanted@Base 1:8.0
- (arch=!nios2 !sh4)GC_helper_count@Base 1:8.0
+ (arch=!sh4)GC_help_marker@Base 1:8.0
+ (arch=!sh4)GC_help_wanted@Base 1:8.0
+ (arch=!sh4)GC_helper_count@Base 1:8.0
  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
@@ -372,16 +372,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=!nios2 !sh4)GC_mark_local@Base 1:8.0
- (arch=!nios2 !sh4)GC_mark_no@Base 1:8.0
+ (arch=!sh4)GC_mark_local@Base 1:8.0
+ (arch=!sh4)GC_mark_no@Base 1:8.0
  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=!nios2 !sh4)GC_mark_thread@Base 1:8.0
+ (arch=!sh4)GC_mark_thread@Base 1:8.0
  GC_mark_thread_local_fls_for@Base 1:8.0
  GC_mark_thread_local_free_lists@Base 1:8.0
- (arch=!nios2 !sh4)GC_mark_threads@Base 1:8.0
+ (arch=!sh4)GC_mark_threads@Base 1:8.0
  GC_mark_togglerefs@Base 1:7.6.4
  GC_max_heapsize@Base 1:7.4.2
  GC_max_retries@Base 1:7.2d
@@ -420,8 +420,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=!nios2 !sh4)GC_notify_all_builder@Base 1:8.0
- (arch=!nios2 !sh4)GC_notify_all_marker@Base 1:8.0
+ (arch=!sh4)GC_notify_all_builder@Base 1:8.0
+ (arch=!sh4)GC_notify_all_marker@Base 1:8.0
  GC_notify_or_invoke_finalizers@Base 1:7.2d
  GC_nprocs@Base 1:7.2d
  GC_null_finalize_mark_proc@Base 1:7.2d
@@ -493,9 +493,9 @@
  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=nios2 sh4)GC_push_marked1@Base 1:7.4.2
- (arch=!alpha !amd64 !arm64 !armel !armhf !hppa !hurd-i386 !i386 !ia64 
!kfreebsd-amd64 !kfreebsd-i386 !m68k !mips !mips64el !mipsel !powerpc 
!powerpcspe !ppc64 !ppc64el !riscv64 !s390x !sparc !sparc64 
!x32)GC_push_marked2@Base 1:7.4.2
- (arch=!alpha !amd64 !arm64 !armel !armhf !hppa !hurd-i386 !i386 !ia64 
!kfreebsd-amd64 !kfreebsd-i386 !m68k !mips !mips64el !mipsel !powerpc 
!powerpcspe !ppc64 !ppc64el !riscv64 !s390x !sparc !sparc64 
!x32)GC_push_marked4@Base 1:7.4.2
+ (arch=sh4)GC_push_marked1@Base 1:7.4.2
+ (arch=!alpha !amd64 !arm64 !armel !armhf !hppa !hurd-i386 !i386 !ia64 
!kfreebsd-amd64 !kfreebsd-i386 !m68k !mips !mips64el !mipsel !nios2 !powerpc 
!powerpcspe !ppc64 !ppc64el !riscv64 !s390x !sparc !sparc64 
!x32)GC_push_marked2@Base 1:7.4.2
+ (arch=!alpha !amd64 !arm64 !armel !armhf !hppa !hurd-i386 !i386 !ia64 
!kfreebsd-amd64 !kfreebsd-i386 !m68k !mips !mips64el !mipsel !nios2 !powerpc 
!powerpcspe !ppc64 !ppc64el !riscv64 !s390x !sparc !sparc64 
!x32)GC_push_marked4@Base 1:7.4.2
  GC_push_marked@Base 1:7.2d
  GC_push_next_marked@Base 1:7.2d
  GC_push_next_marked_dirty@Base 1:7.2d
@@ -545,7 +545,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=!nios2 !sh4)GC_release_mark_lock@Base 1:8.0
+ (arch=!sh4)GC_release_mark_lock@Base 1:8.0
  GC_remap@Base 1:8.0
  GC_remove_all_threads_but_me@Base 1:7.4.2
  GC_remove_allowed_signals@Base 1:7.2d
@@ -565,7 +565,7 @@
  GC_restart_handler@Base 1:7.2d
  (arch=!kfreebsd-amd64 !kfreebsd-i386)GC_resume_thread@Base 1:7.6.4
  GC_retry_signals@Base 1:7.2d
- (arch=!nios2 !sh4)GC_return_mark_stack@Base 1:8.0
+ (arch=!sh4)GC_return_mark_stack@Base 1:8.0
  GC_root_size@Base 1:7.2d
  GC_roots_present@Base 1:7.2d
  GC_same_obj@Base 1:7.2d
@@ -639,7 +639,7 @@
  GC_start_world_external@Base 1:8.0
  GC_stderr@Base 1:7.2d
  GC_stdout@Base 1:7.2d
- (arch=!nios2 !sh4)GC_steal_mark_stack@Base 1:8.0
+ (arch=!sh4)GC_steal_mark_stack@Base 1:8.0
  GC_stop_count@Base 1:7.2d
  GC_stop_init@Base 1:7.2d
  GC_stop_world@Base 1:7.2d
@@ -692,11 +692,11 @@
  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=!nios2 !sh4)GC_wait_builder@Base 1:8.0
+ (arch=!sh4)GC_wait_builder@Base 1:8.0
  GC_wait_for_gc_completion@Base 1:7.2d
  (arch=!sh4)GC_wait_for_markers_init@Base 1:8.0
- (arch=!nios2 !sh4)GC_wait_for_reclaim@Base 1:8.0
- (arch=!nios2 !sh4)GC_wait_marker@Base 1:8.0
+ (arch=!sh4)GC_wait_for_reclaim@Base 1:8.0
+ (arch=!sh4)GC_wait_marker@Base 1:8.0
  GC_with_callee_saves_pushed@Base 1:7.2d
  GC_world_is_stopped@Base 1:7.2d
  GC_world_stopped@Base 1:8.0
diff --minimal -Nru libgc-8.0.4/debian/rules libgc-8.0.4/debian/rules
--- libgc-8.0.4/debian/rules    2020-12-06 12:44:00.000000000 +0100
+++ libgc-8.0.4/debian/rules    2021-07-20 06:26:48.000000000 +0200
@@ -8,7 +8,7 @@
 LDFLAGS += -pthread
 
 ifneq ($(DEB_BUILD_ARCH),$(DEB_HOST_ARCH))
-ATOMIC_BUILTIN_ARCHS = alpha amd64 arm64 armel armhf hppa hurd-i386 i386 ia64 
kfreebsd-amd64 kfreebsd-i386 mips64el mipsel powerpc ppc64 ppc64el riscv64 
s390x x32
+ATOMIC_BUILTIN_ARCHS = alpha amd64 arm64 armel armhf hppa hurd-i386 i386 ia64 
kfreebsd-amd64 kfreebsd-i386 mips64el mipsel nios2 powerpc ppc64 ppc64el 
riscv64 s390x x32
 endif
 
 %:

Reply via email to