update boehm-gc 8.0.4 libatomic_ops 7.6.10

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

update boehm-gc 8.0.4 libatomic_ops 7.6.10

Nam Nguyen
This is an update for boehm-gc 8.0.4 (released March 2, 2019) and
libatomic_ops 7.6.10 (released March 1, 2019). I tested on amd64 with
w3m. I do not have access to aarch64 to test the patches.

Changelogs:
https://github.com/ivmai/bdwgc/commit/d3dede3ce4462cd82a15f161af797ca51654546a
https://github.com/ivmai/libatomic_ops/commit/7702826f7a8a0aa1b08293322adf49510f4438d1

- I am willing to become maintainer, although I do not understand the
  patches. I have familiarized myself with this port now.
- HOMEPAGE uses https://
- Fixed patches to apply cleanly, with the biggest change being
  patch-include_private_gcconfig_h where we no longer need "- use
  __data_start instead of _fdata on OpenBSD/mips64", as it has already
  been applied upstream.
- --enable-static=yes is a new configure flag.
  How did I notice this new flag? First, I noticed some missing
  symbols. Next, am_libgc_la_OBJECTS is commented out in the generated
  Makefile, but the old behavior has the complement commented out.
--8<---------------cut here---------------start------------->8---
#am_libgc_la_OBJECTS = allchblk.lo alloc.lo \
#       blacklst.lo dbg_mlc.lo dyn_load.lo \
#       finalize.lo gc_dlopen.lo gcj_mlc.lo \
#       headers.lo mach_dep.lo malloc.lo \
#       mallocx.lo mark.lo mark_rts.lo misc.lo \
#       new_hblk.lo obj_map.lo os_dep.lo \
#       ptr_chck.lo reclaim.lo specific.lo \
#       typd_mlc.lo $(am__objects_1) \
#       $(am__objects_2) $(am__objects_3) \
#       $(am__objects_4) $(am__objects_5) \
#       $(am__objects_6) $(am__objects_7) \
#       $(am__objects_8)
am_libgc_la_OBJECTS = extra/gc.lo $(am__objects_9) \
        $(am__objects_1) $(am__objects_2) \
        $(am__objects_3) $(am__objects_4) \
        $(am__objects_5) $(am__objects_6) \
        $(am__objects_7) $(am__objects_8)
--8<---------------cut here---------------end--------------->8---

As the porting guide suggests under Handling Complex Situations > Know
the Software, "Read the configure script options." Lesson learned.
--8<---------------cut here---------------start------------->8---
$ ./configure --help
old version:
  --enable-shared[=PKGS]  build shared libraries [default=yes]
  --enable-static[=PKGS]  build static libraries [default=yes]
new version:
  --enable-static[=PKGS]  build static libraries [default=no]
  --enable-shared[=PKGS]  build shared libraries [default=yes]
--8<---------------cut here---------------end--------------->8---

SHARED_LIBS +=  gc              4.0 -> 5.0
SHARED_LIBS +=  gccpp           0.0 -> 0.1
SHARED_LIBS +=  cord            2.3  
SHARED_LIBS +=  atomic_ops      2.0    
SHARED_LIBS +=  atomic_ops_gpl  2.0

gccpp: new symbols
--8<---------------cut here---------------start------------->8---
--- /tmp/libgccpp.old Mon May  6 02:22:14 2019
+++ /tmp/libgccpp.new Mon May  6 02:21:53 2019
@@ -1,5 +1,8 @@
+T _Z18GC_throw_bad_allocv
 T _ZdaPv
+T _ZdaPvm
 T _ZdlPv
+T _ZdlPvm
 T _Znam
 T _Znwm
 T _fini
--8<---------------cut here---------------end--------------->8---

gc: Removal of GC_unix_sbrk_get_mem behind a conditional macro means
libgc 4.0 -> 5.0.
--8<---------------cut here---------------start------------->8---
--- /tmp/libgc.old Mon May  6 02:18:37 2019
+++ /tmp/libgc.new Mon May  6 02:18:27 2019
@@ -3,6 +3,8 @@
 T AO_pause
 T AO_store_full_emulation
 T GC_FirstDLOpenedLinkMap
+T GC_abort_on_oom
+T GC_acquire_mark_lock
 T GC_add_ext_descriptor
 T GC_add_map_entry
 T GC_add_roots
@@ -69,6 +71,7 @@
 T GC_cond_register_dynamic_libraries
 T GC_continue_reclaim
 T GC_copy_bl
+T GC_core_gcj_malloc
 T GC_debug_change_stubborn
 T GC_debug_end_stubborn_change
 T GC_debug_free
@@ -85,6 +88,7 @@
 T GC_debug_malloc_stubborn
 T GC_debug_malloc_uncollectable
 T GC_debug_print_heap_obj_proc
+T GC_debug_ptr_store_and_dirty
 T GC_debug_realloc
 T GC_debug_realloc_replacement
 T GC_debug_register_displacement
@@ -102,10 +106,13 @@
 T GC_default_push_other_roots
 T GC_default_same_obj_print_proc
 T GC_default_warn_proc
+T GC_deinit
 T GC_delete_gc_thread
 T GC_delete_thread
 T GC_descr_obj_size
+T GC_destroy_thread_local
 T GC_dirty_init
+T GC_dirty_inner
 T GC_disable
 T GC_disclaim_and_reclaim
 T GC_disclaim_and_reclaim_or_free_small_block
@@ -113,10 +120,13 @@
 T GC_do_blocking
 T GC_do_blocking_inner
 T GC_do_enumerate_reachable_objects
+T GC_do_local_mark
+T GC_do_parallel_mark
 T GC_double_descr
 T GC_dump
 T GC_dump_finalization
 T GC_dump_finalization_links
+T GC_dump_named
 T GC_dump_regions
 T GC_enable
 T GC_enable_incremental
@@ -152,6 +162,7 @@
 T GC_gcollect
 T GC_gcollect_and_unmap
 T GC_general_register_disappearing_link
+T GC_generic_lock
 T GC_generic_malloc
 T GC_generic_malloc_ignore_off_page
 T GC_generic_malloc_inner
@@ -165,6 +176,7 @@
 T GC_get_bytes_since_gc
 T GC_get_dont_expand
 T GC_get_dont_precollect
+T GC_get_expl_freed_bytes_since_gc
 T GC_get_finalize_on_demand
 T GC_get_finalizer_notifier
 T GC_get_find_leak
@@ -173,14 +185,18 @@
 T GC_get_free_bytes
 T GC_get_free_space_divisor
 T GC_get_full_freq
+T GC_get_full_gc_total_time
 T GC_get_gc_no
 T GC_get_heap_size
 T GC_get_heap_usage_safe
 T GC_get_java_finalization
 T GC_get_kind_and_size
 T GC_get_main_stack_base
+T GC_get_manual_vdb_allowed
+T GC_get_max_prior_attempts
 T GC_get_max_retries
 T GC_get_memory_use
+T GC_get_min_bytes_allocd
 T GC_get_no_dls
 T GC_get_non_gc_bytes
 T GC_get_nprocs
@@ -193,6 +209,8 @@
 T GC_get_prof_stats
 T GC_get_prof_stats_unsafe
 T GC_get_push_other_roots
+T GC_get_rate
+T GC_get_size_map_at
 T GC_get_stack_base
 T GC_get_start_callback
 T GC_get_stop_func
@@ -208,6 +226,7 @@
 T GC_has_other_debug_info
 T GC_hblk_fl_from_blocks
 T GC_header_cache_miss
+T GC_help_marker
 T GC_ignore_self_finalize_mark_proc
 T GC_ignore_warn_proc
 T GC_incr_bytes_allocd
@@ -220,6 +239,7 @@
 T GC_init_headers
 T GC_init_parallel
 T GC_init_size_map
+T GC_init_thread_local
 T GC_initialize_offsets
 T GC_initiate_gc
 T GC_inner_start_routine
@@ -230,10 +250,14 @@
 T GC_is_black_listed
 T GC_is_disabled
 T GC_is_heap_ptr
+T GC_is_incremental_mode
+T GC_is_init_called
 T GC_is_marked
 T GC_is_thread_suspended
+T GC_is_tmp_root
 T GC_is_valid_displacement
 T GC_is_visible
+T GC_key_create_inner
 T GC_lock
 T GC_log_printf
 T GC_lookup_thread
@@ -257,10 +281,15 @@
 T GC_mark_and_push_stack
 T GC_mark_from
 T GC_mark_init
+T GC_mark_local
 T GC_mark_some
+T GC_mark_thread
+T GC_mark_thread_local_fls_for
+T GC_mark_thread_local_free_lists
 T GC_mark_togglerefs
 T GC_maybe_gc
 T GC_memalign
+T GC_merge_unmapped
 T GC_move_disappearing_link
 T GC_move_disappearing_link_inner
 T GC_move_long_link
@@ -279,6 +308,8 @@
 T GC_noop1
 T GC_noop6
 T GC_normal_finalize_mark_proc
+T GC_notify_all_builder
+T GC_notify_all_marker
 T GC_notify_or_invoke_finalizers
 T GC_null_finalize_mark_proc
 T GC_number_stack_black_listed
@@ -307,6 +338,7 @@
 T GC_pthread_create
 T GC_pthread_detach
 T GC_pthread_join
+T GC_ptr_store_and_dirty
 T GC_push_all
 T GC_push_all_eager
 T GC_push_all_stack
@@ -319,9 +351,6 @@
 T GC_push_finalizer_structures
 T GC_push_gc_structures
 T GC_push_marked
-T GC_push_marked1
-T GC_push_marked2
-T GC_push_marked4
 T GC_push_next_marked
 T GC_push_next_marked_dirty
 T GC_push_next_marked_uncollectable
@@ -364,6 +393,8 @@
 T GC_register_main_static_data
 T GC_register_my_thread
 T GC_register_my_thread_inner
+T GC_release_mark_lock
+T GC_remap
 T GC_remove_all_threads_but_me
 T GC_remove_allowed_signals
 T GC_remove_counts
@@ -373,14 +404,18 @@
 T GC_remove_root_at_pos
 T GC_remove_roots
 T GC_remove_roots_inner
+T GC_remove_specific_after_fork
 T GC_remove_tmp_roots
 T GC_reset_fault_handler
 T GC_reset_finalizer_nested
+T GC_restart_all
 T GC_restart_handler
 T GC_resume_thread
+T GC_return_mark_stack
 T GC_roots_present
 T GC_same_obj
 T GC_scratch_alloc
+T GC_scratch_recycle_inner
 T GC_set_abort_func
 T GC_set_all_interior_pointers
 T GC_set_and_save_fault_handler
@@ -398,9 +433,12 @@
 T GC_set_hdr_marks
 T GC_set_java_finalization
 T GC_set_log_fd
+T GC_set_manual_vdb_allowed
 T GC_set_mark_bit
 T GC_set_max_heap_size
+T GC_set_max_prior_attempts
 T GC_set_max_retries
+T GC_set_min_bytes_allocd
 T GC_set_no_dls
 T GC_set_non_gc_bytes
 T GC_set_on_collection_event
@@ -409,6 +447,7 @@
 T GC_set_oom_fn
 T GC_set_pages_executable
 T GC_set_push_other_roots
+T GC_set_rate
 T GC_set_start_callback
 T GC_set_stop_func
 T GC_set_suspend_signal
@@ -417,24 +456,29 @@
 T GC_set_toggleref_func
 T GC_set_warn_proc
 T GC_setpagesize
+T GC_setspecific
 T GC_setup_temporary_fault_handler
 T GC_should_collect
 T GC_should_invoke_finalizers
 T GC_signal_mark_stack_overflow
 T GC_size
 T GC_skip_hole_openbsd
+T GC_slow_getspecific
 T GC_split_block
-T GC_start_debugging
 T GC_start_debugging_inner
 T GC_start_mark_threads
+T GC_start_mark_threads_inner
+T GC_start_performance_measurement
 T GC_start_reclaim
 T GC_start_routine
 T GC_start_rtn_prepare_thread
 T GC_start_world
+T GC_start_world_external
+T GC_steal_mark_stack
 T GC_stop_init
 T GC_stop_world
+T GC_stop_world_external
 T GC_stopped_mark
-T GC_store_debug_info
 T GC_store_debug_info_inner
 T GC_strdup
 T GC_strndup
@@ -452,14 +496,23 @@
 T GC_try_to_collect_inner
 T GC_typed_mark_proc
 T GC_unix_get_mem
-T GC_unix_sbrk_get_mem
+T GC_unix_mmap_get_mem
+T GC_unmap
+T GC_unmap_end
+T GC_unmap_gap
+T GC_unmap_old
+T GC_unmap_start
 T GC_unpromote_black_lists
 T GC_unreachable_finalize_mark_proc
 T GC_unregister_disappearing_link
 T GC_unregister_long_link
 T GC_unregister_my_thread
 T GC_unregister_my_thread_inner
+T GC_wait_builder
 T GC_wait_for_gc_completion
+T GC_wait_for_markers_init
+T GC_wait_for_reclaim
+T GC_wait_marker
 T GC_with_callee_saves_pushed
 T GC_write
 T _fini
--8<---------------cut here---------------end--------------->8---

diff:
Index: Makefile
===================================================================
RCS file: /cvs/ports/devel/boehm-gc/Makefile,v
retrieving revision 1.70
diff -u -p -r1.70 Makefile
--- Makefile 30 Dec 2018 17:08:09 -0000 1.70
+++ Makefile 6 May 2019 12:00:07 -0000
@@ -3,50 +3,51 @@
 COMMENT-main= garbage collection and memory leak detection for C and C++
 COMMENT-atomic= access to hardware provided atomic memory operations
 
-VERSION= 7.6.0
-LIBAO_VERSION= 7.6.6
+VERSION= 8.0.4
+LIBAO_VERSION= 7.6.10
 
 DISTNAME= gc-${VERSION}
 
 PKGNAME-atomic= libatomic_ops-${LIBAO_VERSION}
 PKGNAME-main= boehm-gc-${VERSION}
-REVISION-main= 2
 
 DISTFILES= ${DISTNAME}${EXTRACT_SUFX} \
  libatomic_ops-${LIBAO_VERSION}${EXTRACT_SUFX}
 
 MULTI_PACKAGES= -main -atomic
 
-SHARED_LIBS += gc 4.0 # 1.3
-SHARED_LIBS += gccpp 0.0 # 1.3
-SHARED_LIBS += cord 2.3 # 1.3
-SHARED_LIBS +=  atomic_ops 2.0 # 1.3
-SHARED_LIBS +=  atomic_ops_gpl 2.0 # 1.3
+SHARED_LIBS+= gc 5.0 # 5.3
+SHARED_LIBS+= gccpp 0.1 # 5.0
+SHARED_LIBS+= cord 2.3 # 5.0
+SHARED_LIBS+= atomic_ops 2.0 # 2.1
+SHARED_LIBS+= atomic_ops_gpl 2.0 # 2.2
 
 CATEGORIES= devel
 
 MASTER_SITES= ${HOMEPAGE}gc_source/
 
-HOMEPAGE= http://hboehm.info/gc/
+HOMEPAGE= https://hboehm.info/gc/
+MAINTAINER= Nam Nguyen <[hidden email]>
 
 # currently works only on most ELF archs
 NOT_FOR_ARCHS= m88k
 
 PERMIT_PACKAGE_CDROM= Yes
 
-WANTLIB-main += m pthread ${COMPILER_LIBCXX}
+WANTLIB-main+= m pthread ${COMPILER_LIBCXX}
 
-COMPILER = base-clang ports-gcc base-gcc
+COMPILER= base-clang ports-gcc base-gcc
 
 MAKE_ENV= CP="cp" \
  INSTALL_DATA="${INSTALL_DATA}" \
  INSTALL_MAN="${INSTALL_MAN}"
 
-CONFIGURE_STYLE= gnu
+CONFIGURE_STYLE= gnu
 
-CONFIGURE_ARGS= --with-libatomic-ops=no \
+CONFIGURE_ARGS= --with-libatomic-ops=no \
  --enable-cplusplus \
- --enable-threads=pthreads
+ --enable-threads=pthreads \
+ --enable-static=yes
 
 post-extract:
  @perl -pi -e "s,/usr/local,${PREFIX},g" ${WRKSRC}/doc/gc.man
Index: distinfo
===================================================================
RCS file: /cvs/ports/devel/boehm-gc/distinfo,v
retrieving revision 1.11
diff -u -p -r1.11 distinfo
--- distinfo 30 Dec 2018 17:08:09 -0000 1.11
+++ distinfo 6 May 2019 12:00:07 -0000
@@ -1,4 +1,4 @@
-SHA256 (gc-7.6.0.tar.gz) = oUoosRKb6Q5VzW9xEn/8VZThCR1dVBMVKMJM0MA7fZA=
-SHA256 (libatomic_ops-7.6.6.tar.gz) = mf6rxfVId/MU20+t6xCfCz4dGlSvtrSz37oecH444HQ=
-SIZE (gc-7.6.0.tar.gz) = 1111751
-SIZE (libatomic_ops-7.6.6.tar.gz) = 498187
+SHA256 (gc-8.0.4.tar.gz) = Q2oN3GexrAsEBbYalnW8qeB1yBVvTevR0G86VsfNKJ0=
+SHA256 (libatomic_ops-7.6.10.tar.gz) = WH7fYIF/Vtrx4as4pLPHKbjoRv9ntPYqYVcYNwjwma8=
+SIZE (gc-8.0.4.tar.gz) = 1160528
+SIZE (libatomic_ops-7.6.10.tar.gz) = 503734
Index: patches/patch-bdw-gc_pc_in
===================================================================
RCS file: /cvs/ports/devel/boehm-gc/patches/patch-bdw-gc_pc_in,v
retrieving revision 1.1
diff -u -p -r1.1 patch-bdw-gc_pc_in
--- patches/patch-bdw-gc_pc_in 9 Dec 2009 20:36:49 -0000 1.1
+++ patches/patch-bdw-gc_pc_in 6 May 2019 12:00:07 -0000
@@ -1,10 +1,11 @@
 $OpenBSD: patch-bdw-gc_pc_in,v 1.1 2009/12/09 20:36:49 sthen Exp $
---- bdw-gc.pc.in.orig Mon Dec  7 10:57:34 2009
-+++ bdw-gc.pc.in Mon Dec  7 10:57:46 2009
+Index: bdw-gc.pc.in
+--- bdw-gc.pc.in.orig
++++ bdw-gc.pc.in
 @@ -6,5 +6,5 @@ includedir=@includedir@
  Name: Boehm-Demers-Weiser Conservative Garbage Collector
  Description: A garbage collector for C and C++
  Version: @PACKAGE_VERSION@
--Libs: -L${libdir} -lgc
-+Libs: -L${libdir} -lgc -pthread
+-Libs: -L${libdir} @ATOMIC_OPS_LIBS@ -lgc
++Libs: -L${libdir} @ATOMIC_OPS_LIBS@ -lgc -pthread
  Cflags: -I${includedir}
Index: patches/patch-include_gc_config_macros_h
===================================================================
RCS file: /cvs/ports/devel/boehm-gc/patches/patch-include_gc_config_macros_h,v
retrieving revision 1.3
diff -u -p -r1.3 patch-include_gc_config_macros_h
--- patches/patch-include_gc_config_macros_h 9 Feb 2014 06:01:54 -0000 1.3
+++ patches/patch-include_gc_config_macros_h 6 May 2019 12:00:07 -0000
@@ -1,21 +1,23 @@
 $OpenBSD: patch-include_gc_config_macros_h,v 1.3 2014/02/09 06:01:54 shadchin Exp $
---- include/gc_config_macros.h.orig Sat Jan 18 23:56:01 2014
-+++ include/gc_config_macros.h Sat Jan 18 23:54:59 2014
-@@ -87,14 +87,14 @@
- # if defined(__mips) && !defined(__linux__)
- #   define GC_IRIX_THREADS
+Index: include/gc_config_macros.h
+--- include/gc_config_macros.h.orig
++++ include/gc_config_macros.h
+@@ -81,15 +81,15 @@
+ #   define GC_THREADS
  # endif
--# if defined(__sparc) && !defined(__linux__) \
+ #elif defined(GC_THREADS)
+-# if defined(__linux__)
 +# if defined(__OpenBSD__)
 +#   define GC_OPENBSD_THREADS
-+# elif defined(__sparc) && !defined(__linux__) \
-      || defined(sun) && (defined(i386) || defined(__i386__) \
-                          || defined(__amd64__))
- #   define GC_SOLARIS_THREADS
- # elif defined(__APPLE__) && defined(__MACH__)
- #   define GC_DARWIN_THREADS
++# elif defined(__linux__)
+ #   define GC_LINUX_THREADS
+ # elif defined(_PA_RISC1_1) || defined(_PA_RISC2_0) || defined(hppa) \
+        || defined(__HPPA) || (defined(__ia64) && defined(_HPUX_SOURCE))
+ #   define GC_HPUX_THREADS
+ # elif defined(__HAIKU__)
+ #   define GC_HAIKU_THREADS
 -# elif defined(__OpenBSD__)
 -#   define GC_OPENBSD_THREADS
- # elif !defined(GC_LINUX_THREADS) && !defined(GC_HPUX_THREADS) \
-        && !defined(GC_OSF1_THREADS) && !defined(GC_IRIX_THREADS)
-     /* FIXME: Should we really need for FreeBSD and NetBSD to check     */
+ # elif defined(__DragonFly__) || defined(__FreeBSD_kernel__) \
+        || (defined(__FreeBSD__) && !defined(SN_TARGET_ORBIS))
+ #   define GC_FREEBSD_THREADS
Index: patches/patch-include_private_gcconfig_h
===================================================================
RCS file: /cvs/ports/devel/boehm-gc/patches/patch-include_private_gcconfig_h,v
retrieving revision 1.22
diff -u -p -r1.22 patch-include_private_gcconfig_h
--- patches/patch-include_private_gcconfig_h 15 Apr 2017 14:02:46 -0000 1.22
+++ patches/patch-include_private_gcconfig_h 6 May 2019 12:00:07 -0000
@@ -1,22 +1,22 @@
 $OpenBSD: patch-include_private_gcconfig_h,v 1.22 2017/04/15 14:02:46 naddy Exp $
 
 - All OpenBSD mips platforms are 64-bit, so correct the wordsize and alignment
-- use __data_start instead of _fdata on OpenBSD/mips64
 - add support for OpenBSD/aarch64
 
---- include/private/gcconfig.h.orig Tue Aug  2 21:36:14 2016
-+++ include/private/gcconfig.h Fri Apr 14 17:44:40 2017
-@@ -102,7 +102,8 @@
- # endif
+Index: include/private/gcconfig.h
+--- include/private/gcconfig.h.orig
++++ include/private/gcconfig.h
+@@ -160,7 +160,8 @@ EXTERN_C_BEGIN
  # if defined(__aarch64__)
  #    define AARCH64
--#    if !defined(LINUX) && !defined(DARWIN) && !defined(FREEBSD)
-+#    if !defined(LINUX) && !defined(DARWIN) && !defined(FREEBSD) \
-+ && !defined(OPENBSD)
+ #    if !defined(LINUX) && !defined(DARWIN) && !defined(FREEBSD) \
+-        && !defined(NETBSD) && !defined(NN_BUILD_TARGET_PLATFORM_NX)
++        && !defined(NETBSD) && !defined(OPENBSD) \
++ && !defined(NN_BUILD_TARGET_PLATFORM_NX)
  #      define NOSYS
  #      define mach_type_known
  #    endif
-@@ -137,6 +138,10 @@
+@@ -196,6 +197,10 @@ EXTERN_C_BEGIN
  #    define ARM32
  #    define mach_type_known
  # endif
@@ -27,26 +27,17 @@ $OpenBSD: patch-include_private_gcconfig
  # if defined(OPENBSD) && defined(__sh__)
  #    define SH
  #    define mach_type_known
-@@ -1712,14 +1717,15 @@
- #  endif
- #  ifdef OPENBSD
- #    define OS_TYPE "OPENBSD"
--#    define ALIGNMENT 4
-+#    define CPP_WORDSZ 64
-+#    define ALIGNMENT 8
+@@ -1076,7 +1081,8 @@ EXTERN_C_BEGIN
+ #   endif
+ #   ifdef OPENBSD
+ #     define OS_TYPE "OPENBSD"
+-#     define ALIGNMENT 4
++#     define CPP_WORDSZ 64
++#     define ALIGNMENT 8
  #     ifndef GC_OPENBSD_THREADS
- #      include <sys/param.h>
- #      include <uvm/uvm_extern.h>
- #      define STACKBOTTOM ((ptr_t)USRSTACK)
- #    endif
--     extern int _fdata[];
--#    define DATASTART ((ptr_t)_fdata)
-+     extern int __data_start[];
-+#    define DATASTART ((ptr_t)__data_start)
-      extern int _end[];
- #    define DATAEND ((ptr_t)(&_end))
- #    define DYNAMIC_LOADING
-@@ -2165,6 +2171,19 @@
+         EXTERN_C_END
+ #       include <sys/param.h>
+@@ -2328,6 +2334,19 @@ EXTERN_C_BEGIN
        extern char etext[];
  #     define DATASTART GC_FreeBSDGetDataStart(0x1000, (ptr_t)etext)
  #     define DATASTART_USES_BSDGETDATASTART
@@ -64,5 +55,5 @@ $OpenBSD: patch-include_private_gcconfig
 +#     define DATAEND ((ptr_t)(&_end))
 +#     define DYNAMIC_LOADING
  #   endif
- #   ifdef NOSYS
-       /* __data_start is usually defined in the target linker script.   */
+ #   ifdef NETBSD
+ #     define OS_TYPE "NETBSD"
Index: pkg/PLIST-main
===================================================================
RCS file: /cvs/ports/devel/boehm-gc/pkg/PLIST-main,v
retrieving revision 1.5
diff -u -p -r1.5 PLIST-main
--- pkg/PLIST-main 12 Nov 2016 10:33:04 -0000 1.5
+++ pkg/PLIST-main 6 May 2019 12:00:07 -0000
@@ -20,7 +20,6 @@ include/gc/gc_typed.h
 include/gc/gc_version.h
 include/gc/javaxfc.h
 include/gc/leak_detector.h
-include/gc/weakpointer.h
 include/gc_cpp.h
 lib/libcord.a
 lib/libcord.la
@@ -33,38 +32,37 @@ lib/libgccpp.la
 @lib lib/libgccpp.so.${LIBgccpp_VERSION}
 lib/pkgconfig/bdw-gc.pc
 @man man/man3/gc.3
-share/gc/
-share/gc/AUTHORS
-share/gc/README.DGUX386
-share/gc/README.Mac
-share/gc/README.OS2
-share/gc/README.amiga
-share/gc/README.arm.cross
-share/gc/README.autoconf
-share/gc/README.cmake
-share/gc/README.cords
-share/gc/README.darwin
-share/gc/README.environment
-share/gc/README.ews4800
-share/gc/README.hp
-share/gc/README.linux
-share/gc/README.macros
-share/gc/README.md
-share/gc/README.rs6000
-share/gc/README.sgi
-share/gc/README.solaris2
-share/gc/README.symbian
-share/gc/README.uts
-share/gc/README.win32
-share/gc/README.win64
-share/gc/debugging.html
-share/gc/finalization.html
-@comment share/gc/gc.man
-share/gc/gcdescr.html
-share/gc/gcinterface.html
-share/gc/leak.html
-share/gc/overview.html
-share/gc/porting.html
-share/gc/scale.html
-share/gc/simple_example.html
-share/gc/tree.html
+share/doc/gc/
+share/doc/gc/AUTHORS
+share/doc/gc/README.DGUX386
+share/doc/gc/README.Mac
+share/doc/gc/README.OS2
+share/doc/gc/README.amiga
+share/doc/gc/README.arm.cross
+share/doc/gc/README.autoconf
+share/doc/gc/README.cmake
+share/doc/gc/README.cords
+share/doc/gc/README.darwin
+share/doc/gc/README.environment
+share/doc/gc/README.ews4800
+share/doc/gc/README.hp
+share/doc/gc/README.linux
+share/doc/gc/README.macros
+share/doc/gc/README.md
+share/doc/gc/README.rs6000
+share/doc/gc/README.sgi
+share/doc/gc/README.solaris2
+share/doc/gc/README.symbian
+share/doc/gc/README.uts
+share/doc/gc/README.win32
+share/doc/gc/README.win64
+share/doc/gc/debugging.md
+share/doc/gc/finalization.md
+share/doc/gc/gcdescr.md
+share/doc/gc/gcinterface.md
+share/doc/gc/leak.md
+share/doc/gc/overview.md
+share/doc/gc/porting.md
+share/doc/gc/scale.md
+share/doc/gc/simple_example.md
+share/doc/gc/tree.md

Reply | Threaded
Open this post in threaded view
|

Re: update boehm-gc 8.0.4 libatomic_ops 7.6.10

Stuart Henderson
On 2019/05/06 05:45, Nam Nguyen wrote:
> This is an update for boehm-gc 8.0.4 (released March 2, 2019) and
> libatomic_ops 7.6.10 (released March 1, 2019). I tested on amd64 with
> w3m. I do not have access to aarch64 to test the patches.

boehm-gc has many machine-dependent parts, it wants testing on more arches
than just amd64+aarch64.

> Changelogs:
> https://github.com/ivmai/bdwgc/commit/d3dede3ce4462cd82a15f161af797ca51654546a
> https://github.com/ivmai/libatomic_ops/commit/7702826f7a8a0aa1b08293322adf49510f4438d1
>
> - I am willing to become maintainer, although I do not understand the
>   patches. I have familiarized myself with this port now.

I would say that somebody maintaining boehm-gc should really understand
the patches a bit..

> - HOMEPAGE uses https://
> - Fixed patches to apply cleanly, with the biggest change being
>   patch-include_private_gcconfig_h where we no longer need "- use
>   __data_start instead of _fdata on OpenBSD/mips64", as it has already
>   been applied upstream.
> - --enable-static=yes is a new configure flag.
>   How did I notice this new flag? First, I noticed some missing
>   symbols. Next, am_libgc_la_OBJECTS is commented out in the generated
>   Makefile, but the old behavior has the complement commented out.
> --8<---------------cut here---------------start------------->8---
> #am_libgc_la_OBJECTS = allchblk.lo alloc.lo \
> #       blacklst.lo dbg_mlc.lo dyn_load.lo \
> #       finalize.lo gc_dlopen.lo gcj_mlc.lo \
> #       headers.lo mach_dep.lo malloc.lo \
> #       mallocx.lo mark.lo mark_rts.lo misc.lo \
> #       new_hblk.lo obj_map.lo os_dep.lo \
> #       ptr_chck.lo reclaim.lo specific.lo \
> #       typd_mlc.lo $(am__objects_1) \
> #       $(am__objects_2) $(am__objects_3) \
> #       $(am__objects_4) $(am__objects_5) \
> #       $(am__objects_6) $(am__objects_7) \
> #       $(am__objects_8)
> am_libgc_la_OBJECTS = extra/gc.lo $(am__objects_9) \
>         $(am__objects_1) $(am__objects_2) \
>         $(am__objects_3) $(am__objects_4) \
>         $(am__objects_5) $(am__objects_6) \
>         $(am__objects_7) $(am__objects_8)
> --8<---------------cut here---------------end--------------->8---
>
> As the porting guide suggests under Handling Complex Situations > Know
> the Software, "Read the configure script options." Lesson learned.
> --8<---------------cut here---------------start------------->8---
> $ ./configure --help
> old version:
>   --enable-shared[=PKGS]  build shared libraries [default=yes]
>   --enable-static[=PKGS]  build static libraries [default=yes]
> new version:
>   --enable-static[=PKGS]  build static libraries [default=no]
>   --enable-shared[=PKGS]  build shared libraries [default=yes]
> --8<---------------cut here---------------end--------------->8---
>
> SHARED_LIBS +=  gc              4.0 -> 5.0
> SHARED_LIBS +=  gccpp           0.0 -> 0.1
> SHARED_LIBS +=  cord            2.3  
> SHARED_LIBS +=  atomic_ops      2.0    
> SHARED_LIBS +=  atomic_ops_gpl  2.0
>
> gccpp: new symbols
> --8<---------------cut here---------------start------------->8---
> --- /tmp/libgccpp.old Mon May  6 02:22:14 2019
> +++ /tmp/libgccpp.new Mon May  6 02:21:53 2019
> @@ -1,5 +1,8 @@
> +T _Z18GC_throw_bad_allocv
>  T _ZdaPv
> +T _ZdaPvm
>  T _ZdlPv
> +T _ZdlPvm
>  T _Znam
>  T _Znwm
>  T _fini
> --8<---------------cut here---------------end--------------->8---
>
> gc: Removal of GC_unix_sbrk_get_mem behind a conditional macro means
> libgc 4.0 -> 5.0.
> --8<---------------cut here---------------start------------->8---
> --- /tmp/libgc.old Mon May  6 02:18:37 2019
> +++ /tmp/libgc.new Mon May  6 02:18:27 2019
> @@ -3,6 +3,8 @@
>  T AO_pause
>  T AO_store_full_emulation
>  T GC_FirstDLOpenedLinkMap
> +T GC_abort_on_oom
> +T GC_acquire_mark_lock
>  T GC_add_ext_descriptor
>  T GC_add_map_entry
>  T GC_add_roots
> @@ -69,6 +71,7 @@
>  T GC_cond_register_dynamic_libraries
>  T GC_continue_reclaim
>  T GC_copy_bl
> +T GC_core_gcj_malloc
>  T GC_debug_change_stubborn
>  T GC_debug_end_stubborn_change
>  T GC_debug_free
> @@ -85,6 +88,7 @@
>  T GC_debug_malloc_stubborn
>  T GC_debug_malloc_uncollectable
>  T GC_debug_print_heap_obj_proc
> +T GC_debug_ptr_store_and_dirty
>  T GC_debug_realloc
>  T GC_debug_realloc_replacement
>  T GC_debug_register_displacement
> @@ -102,10 +106,13 @@
>  T GC_default_push_other_roots
>  T GC_default_same_obj_print_proc
>  T GC_default_warn_proc
> +T GC_deinit
>  T GC_delete_gc_thread
>  T GC_delete_thread
>  T GC_descr_obj_size
> +T GC_destroy_thread_local
>  T GC_dirty_init
> +T GC_dirty_inner
>  T GC_disable
>  T GC_disclaim_and_reclaim
>  T GC_disclaim_and_reclaim_or_free_small_block
> @@ -113,10 +120,13 @@
>  T GC_do_blocking
>  T GC_do_blocking_inner
>  T GC_do_enumerate_reachable_objects
> +T GC_do_local_mark
> +T GC_do_parallel_mark
>  T GC_double_descr
>  T GC_dump
>  T GC_dump_finalization
>  T GC_dump_finalization_links
> +T GC_dump_named
>  T GC_dump_regions
>  T GC_enable
>  T GC_enable_incremental
> @@ -152,6 +162,7 @@
>  T GC_gcollect
>  T GC_gcollect_and_unmap
>  T GC_general_register_disappearing_link
> +T GC_generic_lock
>  T GC_generic_malloc
>  T GC_generic_malloc_ignore_off_page
>  T GC_generic_malloc_inner
> @@ -165,6 +176,7 @@
>  T GC_get_bytes_since_gc
>  T GC_get_dont_expand
>  T GC_get_dont_precollect
> +T GC_get_expl_freed_bytes_since_gc
>  T GC_get_finalize_on_demand
>  T GC_get_finalizer_notifier
>  T GC_get_find_leak
> @@ -173,14 +185,18 @@
>  T GC_get_free_bytes
>  T GC_get_free_space_divisor
>  T GC_get_full_freq
> +T GC_get_full_gc_total_time
>  T GC_get_gc_no
>  T GC_get_heap_size
>  T GC_get_heap_usage_safe
>  T GC_get_java_finalization
>  T GC_get_kind_and_size
>  T GC_get_main_stack_base
> +T GC_get_manual_vdb_allowed
> +T GC_get_max_prior_attempts
>  T GC_get_max_retries
>  T GC_get_memory_use
> +T GC_get_min_bytes_allocd
>  T GC_get_no_dls
>  T GC_get_non_gc_bytes
>  T GC_get_nprocs
> @@ -193,6 +209,8 @@
>  T GC_get_prof_stats
>  T GC_get_prof_stats_unsafe
>  T GC_get_push_other_roots
> +T GC_get_rate
> +T GC_get_size_map_at
>  T GC_get_stack_base
>  T GC_get_start_callback
>  T GC_get_stop_func
> @@ -208,6 +226,7 @@
>  T GC_has_other_debug_info
>  T GC_hblk_fl_from_blocks
>  T GC_header_cache_miss
> +T GC_help_marker
>  T GC_ignore_self_finalize_mark_proc
>  T GC_ignore_warn_proc
>  T GC_incr_bytes_allocd
> @@ -220,6 +239,7 @@
>  T GC_init_headers
>  T GC_init_parallel
>  T GC_init_size_map
> +T GC_init_thread_local
>  T GC_initialize_offsets
>  T GC_initiate_gc
>  T GC_inner_start_routine
> @@ -230,10 +250,14 @@
>  T GC_is_black_listed
>  T GC_is_disabled
>  T GC_is_heap_ptr
> +T GC_is_incremental_mode
> +T GC_is_init_called
>  T GC_is_marked
>  T GC_is_thread_suspended
> +T GC_is_tmp_root
>  T GC_is_valid_displacement
>  T GC_is_visible
> +T GC_key_create_inner
>  T GC_lock
>  T GC_log_printf
>  T GC_lookup_thread
> @@ -257,10 +281,15 @@
>  T GC_mark_and_push_stack
>  T GC_mark_from
>  T GC_mark_init
> +T GC_mark_local
>  T GC_mark_some
> +T GC_mark_thread
> +T GC_mark_thread_local_fls_for
> +T GC_mark_thread_local_free_lists
>  T GC_mark_togglerefs
>  T GC_maybe_gc
>  T GC_memalign
> +T GC_merge_unmapped
>  T GC_move_disappearing_link
>  T GC_move_disappearing_link_inner
>  T GC_move_long_link
> @@ -279,6 +308,8 @@
>  T GC_noop1
>  T GC_noop6
>  T GC_normal_finalize_mark_proc
> +T GC_notify_all_builder
> +T GC_notify_all_marker
>  T GC_notify_or_invoke_finalizers
>  T GC_null_finalize_mark_proc
>  T GC_number_stack_black_listed
> @@ -307,6 +338,7 @@
>  T GC_pthread_create
>  T GC_pthread_detach
>  T GC_pthread_join
> +T GC_ptr_store_and_dirty
>  T GC_push_all
>  T GC_push_all_eager
>  T GC_push_all_stack
> @@ -319,9 +351,6 @@
>  T GC_push_finalizer_structures
>  T GC_push_gc_structures
>  T GC_push_marked
> -T GC_push_marked1
> -T GC_push_marked2
> -T GC_push_marked4
>  T GC_push_next_marked
>  T GC_push_next_marked_dirty
>  T GC_push_next_marked_uncollectable
> @@ -364,6 +393,8 @@
>  T GC_register_main_static_data
>  T GC_register_my_thread
>  T GC_register_my_thread_inner
> +T GC_release_mark_lock
> +T GC_remap
>  T GC_remove_all_threads_but_me
>  T GC_remove_allowed_signals
>  T GC_remove_counts
> @@ -373,14 +404,18 @@
>  T GC_remove_root_at_pos
>  T GC_remove_roots
>  T GC_remove_roots_inner
> +T GC_remove_specific_after_fork
>  T GC_remove_tmp_roots
>  T GC_reset_fault_handler
>  T GC_reset_finalizer_nested
> +T GC_restart_all
>  T GC_restart_handler
>  T GC_resume_thread
> +T GC_return_mark_stack
>  T GC_roots_present
>  T GC_same_obj
>  T GC_scratch_alloc
> +T GC_scratch_recycle_inner
>  T GC_set_abort_func
>  T GC_set_all_interior_pointers
>  T GC_set_and_save_fault_handler
> @@ -398,9 +433,12 @@
>  T GC_set_hdr_marks
>  T GC_set_java_finalization
>  T GC_set_log_fd
> +T GC_set_manual_vdb_allowed
>  T GC_set_mark_bit
>  T GC_set_max_heap_size
> +T GC_set_max_prior_attempts
>  T GC_set_max_retries
> +T GC_set_min_bytes_allocd
>  T GC_set_no_dls
>  T GC_set_non_gc_bytes
>  T GC_set_on_collection_event
> @@ -409,6 +447,7 @@
>  T GC_set_oom_fn
>  T GC_set_pages_executable
>  T GC_set_push_other_roots
> +T GC_set_rate
>  T GC_set_start_callback
>  T GC_set_stop_func
>  T GC_set_suspend_signal
> @@ -417,24 +456,29 @@
>  T GC_set_toggleref_func
>  T GC_set_warn_proc
>  T GC_setpagesize
> +T GC_setspecific
>  T GC_setup_temporary_fault_handler
>  T GC_should_collect
>  T GC_should_invoke_finalizers
>  T GC_signal_mark_stack_overflow
>  T GC_size
>  T GC_skip_hole_openbsd
> +T GC_slow_getspecific
>  T GC_split_block
> -T GC_start_debugging
>  T GC_start_debugging_inner
>  T GC_start_mark_threads
> +T GC_start_mark_threads_inner
> +T GC_start_performance_measurement
>  T GC_start_reclaim
>  T GC_start_routine
>  T GC_start_rtn_prepare_thread
>  T GC_start_world
> +T GC_start_world_external
> +T GC_steal_mark_stack
>  T GC_stop_init
>  T GC_stop_world
> +T GC_stop_world_external
>  T GC_stopped_mark
> -T GC_store_debug_info
>  T GC_store_debug_info_inner
>  T GC_strdup
>  T GC_strndup
> @@ -452,14 +496,23 @@
>  T GC_try_to_collect_inner
>  T GC_typed_mark_proc
>  T GC_unix_get_mem
> -T GC_unix_sbrk_get_mem
> +T GC_unix_mmap_get_mem
> +T GC_unmap
> +T GC_unmap_end
> +T GC_unmap_gap
> +T GC_unmap_old
> +T GC_unmap_start
>  T GC_unpromote_black_lists
>  T GC_unreachable_finalize_mark_proc
>  T GC_unregister_disappearing_link
>  T GC_unregister_long_link
>  T GC_unregister_my_thread
>  T GC_unregister_my_thread_inner
> +T GC_wait_builder
>  T GC_wait_for_gc_completion
> +T GC_wait_for_markers_init
> +T GC_wait_for_reclaim
> +T GC_wait_marker
>  T GC_with_callee_saves_pushed
>  T GC_write
>  T _fini
> --8<---------------cut here---------------end--------------->8---
>
> diff:
> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/devel/boehm-gc/Makefile,v
> retrieving revision 1.70
> diff -u -p -r1.70 Makefile
> --- Makefile 30 Dec 2018 17:08:09 -0000 1.70
> +++ Makefile 6 May 2019 12:00:07 -0000
> @@ -3,50 +3,51 @@
>  COMMENT-main= garbage collection and memory leak detection for C and C++
>  COMMENT-atomic= access to hardware provided atomic memory operations
>  
> -VERSION= 7.6.0
> -LIBAO_VERSION= 7.6.6
> +VERSION= 8.0.4
> +LIBAO_VERSION= 7.6.10
>  
>  DISTNAME= gc-${VERSION}
>  
>  PKGNAME-atomic= libatomic_ops-${LIBAO_VERSION}
>  PKGNAME-main= boehm-gc-${VERSION}
> -REVISION-main= 2
>  
>  DISTFILES= ${DISTNAME}${EXTRACT_SUFX} \
>   libatomic_ops-${LIBAO_VERSION}${EXTRACT_SUFX}
>  
>  MULTI_PACKAGES= -main -atomic
>  
> -SHARED_LIBS += gc 4.0 # 1.3
> -SHARED_LIBS += gccpp 0.0 # 1.3
> -SHARED_LIBS += cord 2.3 # 1.3
> -SHARED_LIBS +=  atomic_ops 2.0 # 1.3
> -SHARED_LIBS +=  atomic_ops_gpl 2.0 # 1.3
> +SHARED_LIBS+= gc 5.0 # 5.3
> +SHARED_LIBS+= gccpp 0.1 # 5.0
> +SHARED_LIBS+= cord 2.3 # 5.0
> +SHARED_LIBS+= atomic_ops 2.0 # 2.1
> +SHARED_LIBS+= atomic_ops_gpl 2.0 # 2.2
>  
>  CATEGORIES= devel
>  
>  MASTER_SITES= ${HOMEPAGE}gc_source/
>  
> -HOMEPAGE= http://hboehm.info/gc/
> +HOMEPAGE= https://hboehm.info/gc/
> +MAINTAINER= Nam Nguyen <[hidden email]>
>  
>  # currently works only on most ELF archs
>  NOT_FOR_ARCHS= m88k
>  
>  PERMIT_PACKAGE_CDROM= Yes
>  
> -WANTLIB-main += m pthread ${COMPILER_LIBCXX}
> +WANTLIB-main+= m pthread ${COMPILER_LIBCXX}
>  
> -COMPILER = base-clang ports-gcc base-gcc
> +COMPILER= base-clang ports-gcc base-gcc
>  
>  MAKE_ENV= CP="cp" \
>   INSTALL_DATA="${INSTALL_DATA}" \
>   INSTALL_MAN="${INSTALL_MAN}"
>  
> -CONFIGURE_STYLE= gnu
> +CONFIGURE_STYLE= gnu
>  
> -CONFIGURE_ARGS= --with-libatomic-ops=no \
> +CONFIGURE_ARGS= --with-libatomic-ops=no \
>   --enable-cplusplus \
> - --enable-threads=pthreads
> + --enable-threads=pthreads \
> + --enable-static=yes
>  
>  post-extract:
>   @perl -pi -e "s,/usr/local,${PREFIX},g" ${WRKSRC}/doc/gc.man
> Index: distinfo
> ===================================================================
> RCS file: /cvs/ports/devel/boehm-gc/distinfo,v
> retrieving revision 1.11
> diff -u -p -r1.11 distinfo
> --- distinfo 30 Dec 2018 17:08:09 -0000 1.11
> +++ distinfo 6 May 2019 12:00:07 -0000
> @@ -1,4 +1,4 @@
> -SHA256 (gc-7.6.0.tar.gz) = oUoosRKb6Q5VzW9xEn/8VZThCR1dVBMVKMJM0MA7fZA=
> -SHA256 (libatomic_ops-7.6.6.tar.gz) = mf6rxfVId/MU20+t6xCfCz4dGlSvtrSz37oecH444HQ=
> -SIZE (gc-7.6.0.tar.gz) = 1111751
> -SIZE (libatomic_ops-7.6.6.tar.gz) = 498187
> +SHA256 (gc-8.0.4.tar.gz) = Q2oN3GexrAsEBbYalnW8qeB1yBVvTevR0G86VsfNKJ0=
> +SHA256 (libatomic_ops-7.6.10.tar.gz) = WH7fYIF/Vtrx4as4pLPHKbjoRv9ntPYqYVcYNwjwma8=
> +SIZE (gc-8.0.4.tar.gz) = 1160528
> +SIZE (libatomic_ops-7.6.10.tar.gz) = 503734
> Index: patches/patch-bdw-gc_pc_in
> ===================================================================
> RCS file: /cvs/ports/devel/boehm-gc/patches/patch-bdw-gc_pc_in,v
> retrieving revision 1.1
> diff -u -p -r1.1 patch-bdw-gc_pc_in
> --- patches/patch-bdw-gc_pc_in 9 Dec 2009 20:36:49 -0000 1.1
> +++ patches/patch-bdw-gc_pc_in 6 May 2019 12:00:07 -0000
> @@ -1,10 +1,11 @@
>  $OpenBSD: patch-bdw-gc_pc_in,v 1.1 2009/12/09 20:36:49 sthen Exp $
> ---- bdw-gc.pc.in.orig Mon Dec  7 10:57:34 2009
> -+++ bdw-gc.pc.in Mon Dec  7 10:57:46 2009
> +Index: bdw-gc.pc.in
> +--- bdw-gc.pc.in.orig
> ++++ bdw-gc.pc.in
>  @@ -6,5 +6,5 @@ includedir=@includedir@
>   Name: Boehm-Demers-Weiser Conservative Garbage Collector
>   Description: A garbage collector for C and C++
>   Version: @PACKAGE_VERSION@
> --Libs: -L${libdir} -lgc
> -+Libs: -L${libdir} -lgc -pthread
> +-Libs: -L${libdir} @ATOMIC_OPS_LIBS@ -lgc
> ++Libs: -L${libdir} @ATOMIC_OPS_LIBS@ -lgc -pthread
>   Cflags: -I${includedir}
> Index: patches/patch-include_gc_config_macros_h
> ===================================================================
> RCS file: /cvs/ports/devel/boehm-gc/patches/patch-include_gc_config_macros_h,v
> retrieving revision 1.3
> diff -u -p -r1.3 patch-include_gc_config_macros_h
> --- patches/patch-include_gc_config_macros_h 9 Feb 2014 06:01:54 -0000 1.3
> +++ patches/patch-include_gc_config_macros_h 6 May 2019 12:00:07 -0000
> @@ -1,21 +1,23 @@
>  $OpenBSD: patch-include_gc_config_macros_h,v 1.3 2014/02/09 06:01:54 shadchin Exp $
> ---- include/gc_config_macros.h.orig Sat Jan 18 23:56:01 2014
> -+++ include/gc_config_macros.h Sat Jan 18 23:54:59 2014
> -@@ -87,14 +87,14 @@
> - # if defined(__mips) && !defined(__linux__)
> - #   define GC_IRIX_THREADS
> +Index: include/gc_config_macros.h
> +--- include/gc_config_macros.h.orig
> ++++ include/gc_config_macros.h
> +@@ -81,15 +81,15 @@
> + #   define GC_THREADS
>   # endif
> --# if defined(__sparc) && !defined(__linux__) \
> + #elif defined(GC_THREADS)
> +-# if defined(__linux__)
>  +# if defined(__OpenBSD__)
>  +#   define GC_OPENBSD_THREADS
> -+# elif defined(__sparc) && !defined(__linux__) \
> -      || defined(sun) && (defined(i386) || defined(__i386__) \
> -                          || defined(__amd64__))
> - #   define GC_SOLARIS_THREADS
> - # elif defined(__APPLE__) && defined(__MACH__)
> - #   define GC_DARWIN_THREADS
> ++# elif defined(__linux__)
> + #   define GC_LINUX_THREADS
> + # elif defined(_PA_RISC1_1) || defined(_PA_RISC2_0) || defined(hppa) \
> +        || defined(__HPPA) || (defined(__ia64) && defined(_HPUX_SOURCE))
> + #   define GC_HPUX_THREADS
> + # elif defined(__HAIKU__)
> + #   define GC_HAIKU_THREADS
>  -# elif defined(__OpenBSD__)
>  -#   define GC_OPENBSD_THREADS
> - # elif !defined(GC_LINUX_THREADS) && !defined(GC_HPUX_THREADS) \
> -        && !defined(GC_OSF1_THREADS) && !defined(GC_IRIX_THREADS)
> -     /* FIXME: Should we really need for FreeBSD and NetBSD to check     */
> + # elif defined(__DragonFly__) || defined(__FreeBSD_kernel__) \
> +        || (defined(__FreeBSD__) && !defined(SN_TARGET_ORBIS))
> + #   define GC_FREEBSD_THREADS
> Index: patches/patch-include_private_gcconfig_h
> ===================================================================
> RCS file: /cvs/ports/devel/boehm-gc/patches/patch-include_private_gcconfig_h,v
> retrieving revision 1.22
> diff -u -p -r1.22 patch-include_private_gcconfig_h
> --- patches/patch-include_private_gcconfig_h 15 Apr 2017 14:02:46 -0000 1.22
> +++ patches/patch-include_private_gcconfig_h 6 May 2019 12:00:07 -0000
> @@ -1,22 +1,22 @@
>  $OpenBSD: patch-include_private_gcconfig_h,v 1.22 2017/04/15 14:02:46 naddy Exp $
>  
>  - All OpenBSD mips platforms are 64-bit, so correct the wordsize and alignment
> -- use __data_start instead of _fdata on OpenBSD/mips64
>  - add support for OpenBSD/aarch64
>  
> ---- include/private/gcconfig.h.orig Tue Aug  2 21:36:14 2016
> -+++ include/private/gcconfig.h Fri Apr 14 17:44:40 2017
> -@@ -102,7 +102,8 @@
> - # endif
> +Index: include/private/gcconfig.h
> +--- include/private/gcconfig.h.orig
> ++++ include/private/gcconfig.h
> +@@ -160,7 +160,8 @@ EXTERN_C_BEGIN
>   # if defined(__aarch64__)
>   #    define AARCH64
> --#    if !defined(LINUX) && !defined(DARWIN) && !defined(FREEBSD)
> -+#    if !defined(LINUX) && !defined(DARWIN) && !defined(FREEBSD) \
> -+ && !defined(OPENBSD)
> + #    if !defined(LINUX) && !defined(DARWIN) && !defined(FREEBSD) \
> +-        && !defined(NETBSD) && !defined(NN_BUILD_TARGET_PLATFORM_NX)
> ++        && !defined(NETBSD) && !defined(OPENBSD) \
> ++ && !defined(NN_BUILD_TARGET_PLATFORM_NX)
>   #      define NOSYS
>   #      define mach_type_known
>   #    endif
> -@@ -137,6 +138,10 @@
> +@@ -196,6 +197,10 @@ EXTERN_C_BEGIN
>   #    define ARM32
>   #    define mach_type_known
>   # endif
> @@ -27,26 +27,17 @@ $OpenBSD: patch-include_private_gcconfig
>   # if defined(OPENBSD) && defined(__sh__)
>   #    define SH
>   #    define mach_type_known
> -@@ -1712,14 +1717,15 @@
> - #  endif
> - #  ifdef OPENBSD
> - #    define OS_TYPE "OPENBSD"
> --#    define ALIGNMENT 4
> -+#    define CPP_WORDSZ 64
> -+#    define ALIGNMENT 8
> +@@ -1076,7 +1081,8 @@ EXTERN_C_BEGIN
> + #   endif
> + #   ifdef OPENBSD
> + #     define OS_TYPE "OPENBSD"
> +-#     define ALIGNMENT 4
> ++#     define CPP_WORDSZ 64
> ++#     define ALIGNMENT 8
>   #     ifndef GC_OPENBSD_THREADS
> - #      include <sys/param.h>
> - #      include <uvm/uvm_extern.h>
> - #      define STACKBOTTOM ((ptr_t)USRSTACK)
> - #    endif
> --     extern int _fdata[];
> --#    define DATASTART ((ptr_t)_fdata)
> -+     extern int __data_start[];
> -+#    define DATASTART ((ptr_t)__data_start)
> -      extern int _end[];
> - #    define DATAEND ((ptr_t)(&_end))
> - #    define DYNAMIC_LOADING
> -@@ -2165,6 +2171,19 @@
> +         EXTERN_C_END
> + #       include <sys/param.h>
> +@@ -2328,6 +2334,19 @@ EXTERN_C_BEGIN
>         extern char etext[];
>   #     define DATASTART GC_FreeBSDGetDataStart(0x1000, (ptr_t)etext)
>   #     define DATASTART_USES_BSDGETDATASTART
> @@ -64,5 +55,5 @@ $OpenBSD: patch-include_private_gcconfig
>  +#     define DATAEND ((ptr_t)(&_end))
>  +#     define DYNAMIC_LOADING
>   #   endif
> - #   ifdef NOSYS
> -       /* __data_start is usually defined in the target linker script.   */
> + #   ifdef NETBSD
> + #     define OS_TYPE "NETBSD"
> Index: pkg/PLIST-main
> ===================================================================
> RCS file: /cvs/ports/devel/boehm-gc/pkg/PLIST-main,v
> retrieving revision 1.5
> diff -u -p -r1.5 PLIST-main
> --- pkg/PLIST-main 12 Nov 2016 10:33:04 -0000 1.5
> +++ pkg/PLIST-main 6 May 2019 12:00:07 -0000
> @@ -20,7 +20,6 @@ include/gc/gc_typed.h
>  include/gc/gc_version.h
>  include/gc/javaxfc.h
>  include/gc/leak_detector.h
> -include/gc/weakpointer.h
>  include/gc_cpp.h
>  lib/libcord.a
>  lib/libcord.la
> @@ -33,38 +32,37 @@ lib/libgccpp.la
>  @lib lib/libgccpp.so.${LIBgccpp_VERSION}
>  lib/pkgconfig/bdw-gc.pc
>  @man man/man3/gc.3
> -share/gc/
> -share/gc/AUTHORS
> -share/gc/README.DGUX386
> -share/gc/README.Mac
> -share/gc/README.OS2
> -share/gc/README.amiga
> -share/gc/README.arm.cross
> -share/gc/README.autoconf
> -share/gc/README.cmake
> -share/gc/README.cords
> -share/gc/README.darwin
> -share/gc/README.environment
> -share/gc/README.ews4800
> -share/gc/README.hp
> -share/gc/README.linux
> -share/gc/README.macros
> -share/gc/README.md
> -share/gc/README.rs6000
> -share/gc/README.sgi
> -share/gc/README.solaris2
> -share/gc/README.symbian
> -share/gc/README.uts
> -share/gc/README.win32
> -share/gc/README.win64
> -share/gc/debugging.html
> -share/gc/finalization.html
> -@comment share/gc/gc.man
> -share/gc/gcdescr.html
> -share/gc/gcinterface.html
> -share/gc/leak.html
> -share/gc/overview.html
> -share/gc/porting.html
> -share/gc/scale.html
> -share/gc/simple_example.html
> -share/gc/tree.html
> +share/doc/gc/
> +share/doc/gc/AUTHORS
> +share/doc/gc/README.DGUX386
> +share/doc/gc/README.Mac
> +share/doc/gc/README.OS2
> +share/doc/gc/README.amiga
> +share/doc/gc/README.arm.cross
> +share/doc/gc/README.autoconf
> +share/doc/gc/README.cmake
> +share/doc/gc/README.cords
> +share/doc/gc/README.darwin
> +share/doc/gc/README.environment
> +share/doc/gc/README.ews4800
> +share/doc/gc/README.hp
> +share/doc/gc/README.linux
> +share/doc/gc/README.macros
> +share/doc/gc/README.md
> +share/doc/gc/README.rs6000
> +share/doc/gc/README.sgi
> +share/doc/gc/README.solaris2
> +share/doc/gc/README.symbian
> +share/doc/gc/README.uts
> +share/doc/gc/README.win32
> +share/doc/gc/README.win64
> +share/doc/gc/debugging.md
> +share/doc/gc/finalization.md
> +share/doc/gc/gcdescr.md
> +share/doc/gc/gcinterface.md
> +share/doc/gc/leak.md
> +share/doc/gc/overview.md
> +share/doc/gc/porting.md
> +share/doc/gc/scale.md
> +share/doc/gc/simple_example.md
> +share/doc/gc/tree.md
>

Reply | Threaded
Open this post in threaded view
|

w3m broken, Re: update boehm-gc 8.0.4 libatomic_ops 7.6.10

lists-2
Hi Nam,

On amd64 latest snap, a recent w3m package installation segfaults on run:

(gdb) r
Starting program: /usr/local/bin/w3m

Program received signal SIGSEGV, Segmentation fault.
0x000016d1b18988e7 in GC_mark_from () from /usr/local/lib/libgc.so.4.0
Current language:  auto; currently minimal
(gdb) bt
#0  0x000016d1b18988e7 in GC_mark_from () from /usr/local/lib/libgc.so.4.0
#1  0x000016d1b189847c in GC_mark_some () from /usr/local/lib/libgc.so.4.0
#2  0x000016d1b188d67d in GC_stopped_mark () from /usr/local/lib/libgc.so.4.0
#3  0x000016d1b188d520 in GC_try_to_collect_inner () from /usr/local/lib/libgc.so.4.0
#4  0x000016d1b189ce6e in GC_init () from /usr/local/lib/libgc.so.4.0
#5  0x000016cf2d1384ad in ?? () from /usr/local/bin/w3m
#6  0x000016cf2d138148 in ?? () from /usr/local/bin/w3m
#7  0x0000000000000000 in ?? ()
(gdb) q

Please, test this again after the latest ports changes (gettext related).

Kind regards,
Anton Lazarov

Tue, 7 May 2019 09:27:25 +0100 Stuart Henderson <[hidden email]>

> On 2019/05/06 05:45, Nam Nguyen wrote:
> > This is an update for boehm-gc 8.0.4 (released March 2, 2019) and
> > libatomic_ops 7.6.10 (released March 1, 2019). I tested on amd64 with
> > w3m. I do not have access to aarch64 to test the patches.  
>
> boehm-gc has many machine-dependent parts, it wants testing on more arches
> than just amd64+aarch64.
>
> > Changelogs:
> > https://github.com/ivmai/bdwgc/commit/d3dede3ce4462cd82a15f161af797ca51654546a
> > https://github.com/ivmai/libatomic_ops/commit/7702826f7a8a0aa1b08293322adf49510f4438d1
> >
> > - I am willing to become maintainer, although I do not understand the
> >   patches. I have familiarized myself with this port now.  
>
> I would say that somebody maintaining boehm-gc should really understand
> the patches a bit..
>
> > - HOMEPAGE uses https://
> > - Fixed patches to apply cleanly, with the biggest change being
> >   patch-include_private_gcconfig_h where we no longer need "- use
> >   __data_start instead of _fdata on OpenBSD/mips64", as it has already
> >   been applied upstream.
> > - --enable-static=yes is a new configure flag.
> >   How did I notice this new flag? First, I noticed some missing
> >   symbols. Next, am_libgc_la_OBJECTS is commented out in the generated
> >   Makefile, but the old behavior has the complement commented out.
> > --8<---------------cut here---------------start------------->8---
> > #am_libgc_la_OBJECTS = allchblk.lo alloc.lo \
> > #       blacklst.lo dbg_mlc.lo dyn_load.lo \
> > #       finalize.lo gc_dlopen.lo gcj_mlc.lo \
> > #       headers.lo mach_dep.lo malloc.lo \
> > #       mallocx.lo mark.lo mark_rts.lo misc.lo \
> > #       new_hblk.lo obj_map.lo os_dep.lo \
> > #       ptr_chck.lo reclaim.lo specific.lo \
> > #       typd_mlc.lo $(am__objects_1) \
> > #       $(am__objects_2) $(am__objects_3) \
> > #       $(am__objects_4) $(am__objects_5) \
> > #       $(am__objects_6) $(am__objects_7) \
> > #       $(am__objects_8)
> > am_libgc_la_OBJECTS = extra/gc.lo $(am__objects_9) \
> >         $(am__objects_1) $(am__objects_2) \
> >         $(am__objects_3) $(am__objects_4) \
> >         $(am__objects_5) $(am__objects_6) \
> >         $(am__objects_7) $(am__objects_8)
> > --8<---------------cut here---------------end--------------->8---
> >
> > As the porting guide suggests under Handling Complex Situations > Know
> > the Software, "Read the configure script options." Lesson learned.
> > --8<---------------cut here---------------start------------->8---
> > $ ./configure --help
> > old version:
> >   --enable-shared[=PKGS]  build shared libraries [default=yes]
> >   --enable-static[=PKGS]  build static libraries [default=yes]
> > new version:
> >   --enable-static[=PKGS]  build static libraries [default=no]
> >   --enable-shared[=PKGS]  build shared libraries [default=yes]
> > --8<---------------cut here---------------end--------------->8---
> >
> > SHARED_LIBS +=  gc              4.0 -> 5.0
> > SHARED_LIBS +=  gccpp           0.0 -> 0.1
> > SHARED_LIBS +=  cord            2.3  
> > SHARED_LIBS +=  atomic_ops      2.0    
> > SHARED_LIBS +=  atomic_ops_gpl  2.0
> >
> > gccpp: new symbols
> > --8<---------------cut here---------------start------------->8---
> > --- /tmp/libgccpp.old Mon May  6 02:22:14 2019
> > +++ /tmp/libgccpp.new Mon May  6 02:21:53 2019
> > @@ -1,5 +1,8 @@
> > +T _Z18GC_throw_bad_allocv
> >  T _ZdaPv
> > +T _ZdaPvm
> >  T _ZdlPv
> > +T _ZdlPvm
> >  T _Znam
> >  T _Znwm
> >  T _fini
> > --8<---------------cut here---------------end--------------->8---
> >
> > gc: Removal of GC_unix_sbrk_get_mem behind a conditional macro means
> > libgc 4.0 -> 5.0.
> > --8<---------------cut here---------------start------------->8---
> > --- /tmp/libgc.old Mon May  6 02:18:37 2019
> > +++ /tmp/libgc.new Mon May  6 02:18:27 2019
> > @@ -3,6 +3,8 @@
> >  T AO_pause
> >  T AO_store_full_emulation
> >  T GC_FirstDLOpenedLinkMap
> > +T GC_abort_on_oom
> > +T GC_acquire_mark_lock
> >  T GC_add_ext_descriptor
> >  T GC_add_map_entry
> >  T GC_add_roots
> > @@ -69,6 +71,7 @@
> >  T GC_cond_register_dynamic_libraries
> >  T GC_continue_reclaim
> >  T GC_copy_bl
> > +T GC_core_gcj_malloc
> >  T GC_debug_change_stubborn
> >  T GC_debug_end_stubborn_change
> >  T GC_debug_free
> > @@ -85,6 +88,7 @@
> >  T GC_debug_malloc_stubborn
> >  T GC_debug_malloc_uncollectable
> >  T GC_debug_print_heap_obj_proc
> > +T GC_debug_ptr_store_and_dirty
> >  T GC_debug_realloc
> >  T GC_debug_realloc_replacement
> >  T GC_debug_register_displacement
> > @@ -102,10 +106,13 @@
> >  T GC_default_push_other_roots
> >  T GC_default_same_obj_print_proc
> >  T GC_default_warn_proc
> > +T GC_deinit
> >  T GC_delete_gc_thread
> >  T GC_delete_thread
> >  T GC_descr_obj_size
> > +T GC_destroy_thread_local
> >  T GC_dirty_init
> > +T GC_dirty_inner
> >  T GC_disable
> >  T GC_disclaim_and_reclaim
> >  T GC_disclaim_and_reclaim_or_free_small_block
> > @@ -113,10 +120,13 @@
> >  T GC_do_blocking
> >  T GC_do_blocking_inner
> >  T GC_do_enumerate_reachable_objects
> > +T GC_do_local_mark
> > +T GC_do_parallel_mark
> >  T GC_double_descr
> >  T GC_dump
> >  T GC_dump_finalization
> >  T GC_dump_finalization_links
> > +T GC_dump_named
> >  T GC_dump_regions
> >  T GC_enable
> >  T GC_enable_incremental
> > @@ -152,6 +162,7 @@
> >  T GC_gcollect
> >  T GC_gcollect_and_unmap
> >  T GC_general_register_disappearing_link
> > +T GC_generic_lock
> >  T GC_generic_malloc
> >  T GC_generic_malloc_ignore_off_page
> >  T GC_generic_malloc_inner
> > @@ -165,6 +176,7 @@
> >  T GC_get_bytes_since_gc
> >  T GC_get_dont_expand
> >  T GC_get_dont_precollect
> > +T GC_get_expl_freed_bytes_since_gc
> >  T GC_get_finalize_on_demand
> >  T GC_get_finalizer_notifier
> >  T GC_get_find_leak
> > @@ -173,14 +185,18 @@
> >  T GC_get_free_bytes
> >  T GC_get_free_space_divisor
> >  T GC_get_full_freq
> > +T GC_get_full_gc_total_time
> >  T GC_get_gc_no
> >  T GC_get_heap_size
> >  T GC_get_heap_usage_safe
> >  T GC_get_java_finalization
> >  T GC_get_kind_and_size
> >  T GC_get_main_stack_base
> > +T GC_get_manual_vdb_allowed
> > +T GC_get_max_prior_attempts
> >  T GC_get_max_retries
> >  T GC_get_memory_use
> > +T GC_get_min_bytes_allocd
> >  T GC_get_no_dls
> >  T GC_get_non_gc_bytes
> >  T GC_get_nprocs
> > @@ -193,6 +209,8 @@
> >  T GC_get_prof_stats
> >  T GC_get_prof_stats_unsafe
> >  T GC_get_push_other_roots
> > +T GC_get_rate
> > +T GC_get_size_map_at
> >  T GC_get_stack_base
> >  T GC_get_start_callback
> >  T GC_get_stop_func
> > @@ -208,6 +226,7 @@
> >  T GC_has_other_debug_info
> >  T GC_hblk_fl_from_blocks
> >  T GC_header_cache_miss
> > +T GC_help_marker
> >  T GC_ignore_self_finalize_mark_proc
> >  T GC_ignore_warn_proc
> >  T GC_incr_bytes_allocd
> > @@ -220,6 +239,7 @@
> >  T GC_init_headers
> >  T GC_init_parallel
> >  T GC_init_size_map
> > +T GC_init_thread_local
> >  T GC_initialize_offsets
> >  T GC_initiate_gc
> >  T GC_inner_start_routine
> > @@ -230,10 +250,14 @@
> >  T GC_is_black_listed
> >  T GC_is_disabled
> >  T GC_is_heap_ptr
> > +T GC_is_incremental_mode
> > +T GC_is_init_called
> >  T GC_is_marked
> >  T GC_is_thread_suspended
> > +T GC_is_tmp_root
> >  T GC_is_valid_displacement
> >  T GC_is_visible
> > +T GC_key_create_inner
> >  T GC_lock
> >  T GC_log_printf
> >  T GC_lookup_thread
> > @@ -257,10 +281,15 @@
> >  T GC_mark_and_push_stack
> >  T GC_mark_from
> >  T GC_mark_init
> > +T GC_mark_local
> >  T GC_mark_some
> > +T GC_mark_thread
> > +T GC_mark_thread_local_fls_for
> > +T GC_mark_thread_local_free_lists
> >  T GC_mark_togglerefs
> >  T GC_maybe_gc
> >  T GC_memalign
> > +T GC_merge_unmapped
> >  T GC_move_disappearing_link
> >  T GC_move_disappearing_link_inner
> >  T GC_move_long_link
> > @@ -279,6 +308,8 @@
> >  T GC_noop1
> >  T GC_noop6
> >  T GC_normal_finalize_mark_proc
> > +T GC_notify_all_builder
> > +T GC_notify_all_marker
> >  T GC_notify_or_invoke_finalizers
> >  T GC_null_finalize_mark_proc
> >  T GC_number_stack_black_listed
> > @@ -307,6 +338,7 @@
> >  T GC_pthread_create
> >  T GC_pthread_detach
> >  T GC_pthread_join
> > +T GC_ptr_store_and_dirty
> >  T GC_push_all
> >  T GC_push_all_eager
> >  T GC_push_all_stack
> > @@ -319,9 +351,6 @@
> >  T GC_push_finalizer_structures
> >  T GC_push_gc_structures
> >  T GC_push_marked
> > -T GC_push_marked1
> > -T GC_push_marked2
> > -T GC_push_marked4
> >  T GC_push_next_marked
> >  T GC_push_next_marked_dirty
> >  T GC_push_next_marked_uncollectable
> > @@ -364,6 +393,8 @@
> >  T GC_register_main_static_data
> >  T GC_register_my_thread
> >  T GC_register_my_thread_inner
> > +T GC_release_mark_lock
> > +T GC_remap
> >  T GC_remove_all_threads_but_me
> >  T GC_remove_allowed_signals
> >  T GC_remove_counts
> > @@ -373,14 +404,18 @@
> >  T GC_remove_root_at_pos
> >  T GC_remove_roots
> >  T GC_remove_roots_inner
> > +T GC_remove_specific_after_fork
> >  T GC_remove_tmp_roots
> >  T GC_reset_fault_handler
> >  T GC_reset_finalizer_nested
> > +T GC_restart_all
> >  T GC_restart_handler
> >  T GC_resume_thread
> > +T GC_return_mark_stack
> >  T GC_roots_present
> >  T GC_same_obj
> >  T GC_scratch_alloc
> > +T GC_scratch_recycle_inner
> >  T GC_set_abort_func
> >  T GC_set_all_interior_pointers
> >  T GC_set_and_save_fault_handler
> > @@ -398,9 +433,12 @@
> >  T GC_set_hdr_marks
> >  T GC_set_java_finalization
> >  T GC_set_log_fd
> > +T GC_set_manual_vdb_allowed
> >  T GC_set_mark_bit
> >  T GC_set_max_heap_size
> > +T GC_set_max_prior_attempts
> >  T GC_set_max_retries
> > +T GC_set_min_bytes_allocd
> >  T GC_set_no_dls
> >  T GC_set_non_gc_bytes
> >  T GC_set_on_collection_event
> > @@ -409,6 +447,7 @@
> >  T GC_set_oom_fn
> >  T GC_set_pages_executable
> >  T GC_set_push_other_roots
> > +T GC_set_rate
> >  T GC_set_start_callback
> >  T GC_set_stop_func
> >  T GC_set_suspend_signal
> > @@ -417,24 +456,29 @@
> >  T GC_set_toggleref_func
> >  T GC_set_warn_proc
> >  T GC_setpagesize
> > +T GC_setspecific
> >  T GC_setup_temporary_fault_handler
> >  T GC_should_collect
> >  T GC_should_invoke_finalizers
> >  T GC_signal_mark_stack_overflow
> >  T GC_size
> >  T GC_skip_hole_openbsd
> > +T GC_slow_getspecific
> >  T GC_split_block
> > -T GC_start_debugging
> >  T GC_start_debugging_inner
> >  T GC_start_mark_threads
> > +T GC_start_mark_threads_inner
> > +T GC_start_performance_measurement
> >  T GC_start_reclaim
> >  T GC_start_routine
> >  T GC_start_rtn_prepare_thread
> >  T GC_start_world
> > +T GC_start_world_external
> > +T GC_steal_mark_stack
> >  T GC_stop_init
> >  T GC_stop_world
> > +T GC_stop_world_external
> >  T GC_stopped_mark
> > -T GC_store_debug_info
> >  T GC_store_debug_info_inner
> >  T GC_strdup
> >  T GC_strndup
> > @@ -452,14 +496,23 @@
> >  T GC_try_to_collect_inner
> >  T GC_typed_mark_proc
> >  T GC_unix_get_mem
> > -T GC_unix_sbrk_get_mem
> > +T GC_unix_mmap_get_mem
> > +T GC_unmap
> > +T GC_unmap_end
> > +T GC_unmap_gap
> > +T GC_unmap_old
> > +T GC_unmap_start
> >  T GC_unpromote_black_lists
> >  T GC_unreachable_finalize_mark_proc
> >  T GC_unregister_disappearing_link
> >  T GC_unregister_long_link
> >  T GC_unregister_my_thread
> >  T GC_unregister_my_thread_inner
> > +T GC_wait_builder
> >  T GC_wait_for_gc_completion
> > +T GC_wait_for_markers_init
> > +T GC_wait_for_reclaim
> > +T GC_wait_marker
> >  T GC_with_callee_saves_pushed
> >  T GC_write
> >  T _fini
> > --8<---------------cut here---------------end--------------->8---
> >
> > diff:
> > Index: Makefile
> > ===================================================================
> > RCS file: /cvs/ports/devel/boehm-gc/Makefile,v
> > retrieving revision 1.70
> > diff -u -p -r1.70 Makefile
> > --- Makefile 30 Dec 2018 17:08:09 -0000 1.70
> > +++ Makefile 6 May 2019 12:00:07 -0000
> > @@ -3,50 +3,51 @@
> >  COMMENT-main= garbage collection and memory leak detection for C and C++
> >  COMMENT-atomic= access to hardware provided atomic memory operations
> >  
> > -VERSION= 7.6.0
> > -LIBAO_VERSION= 7.6.6
> > +VERSION= 8.0.4
> > +LIBAO_VERSION= 7.6.10
> >  
> >  DISTNAME= gc-${VERSION}
> >  
> >  PKGNAME-atomic= libatomic_ops-${LIBAO_VERSION}
> >  PKGNAME-main= boehm-gc-${VERSION}
> > -REVISION-main= 2
> >  
> >  DISTFILES= ${DISTNAME}${EXTRACT_SUFX} \
> >   libatomic_ops-${LIBAO_VERSION}${EXTRACT_SUFX}
> >  
> >  MULTI_PACKAGES= -main -atomic
> >  
> > -SHARED_LIBS += gc 4.0 # 1.3
> > -SHARED_LIBS += gccpp 0.0 # 1.3
> > -SHARED_LIBS += cord 2.3 # 1.3
> > -SHARED_LIBS +=  atomic_ops 2.0 # 1.3
> > -SHARED_LIBS +=  atomic_ops_gpl 2.0 # 1.3
> > +SHARED_LIBS+= gc 5.0 # 5.3
> > +SHARED_LIBS+= gccpp 0.1 # 5.0
> > +SHARED_LIBS+= cord 2.3 # 5.0
> > +SHARED_LIBS+= atomic_ops 2.0 # 2.1
> > +SHARED_LIBS+= atomic_ops_gpl 2.0 # 2.2
> >  
> >  CATEGORIES= devel
> >  
> >  MASTER_SITES= ${HOMEPAGE}gc_source/
> >  
> > -HOMEPAGE= http://hboehm.info/gc/
> > +HOMEPAGE= https://hboehm.info/gc/
> > +MAINTAINER= Nam Nguyen <[hidden email]>
> >  
> >  # currently works only on most ELF archs
> >  NOT_FOR_ARCHS= m88k
> >  
> >  PERMIT_PACKAGE_CDROM= Yes
> >  
> > -WANTLIB-main += m pthread ${COMPILER_LIBCXX}
> > +WANTLIB-main+= m pthread ${COMPILER_LIBCXX}
> >  
> > -COMPILER = base-clang ports-gcc base-gcc
> > +COMPILER= base-clang ports-gcc base-gcc
> >  
> >  MAKE_ENV= CP="cp" \
> >   INSTALL_DATA="${INSTALL_DATA}" \
> >   INSTALL_MAN="${INSTALL_MAN}"
> >  
> > -CONFIGURE_STYLE= gnu
> > +CONFIGURE_STYLE= gnu
> >  
> > -CONFIGURE_ARGS= --with-libatomic-ops=no \
> > +CONFIGURE_ARGS= --with-libatomic-ops=no \
> >   --enable-cplusplus \
> > - --enable-threads=pthreads
> > + --enable-threads=pthreads \
> > + --enable-static=yes
> >  
> >  post-extract:
> >   @perl -pi -e "s,/usr/local,${PREFIX},g" ${WRKSRC}/doc/gc.man
> > Index: distinfo
> > ===================================================================
> > RCS file: /cvs/ports/devel/boehm-gc/distinfo,v
> > retrieving revision 1.11
> > diff -u -p -r1.11 distinfo
> > --- distinfo 30 Dec 2018 17:08:09 -0000 1.11
> > +++ distinfo 6 May 2019 12:00:07 -0000
> > @@ -1,4 +1,4 @@
> > -SHA256 (gc-7.6.0.tar.gz) = oUoosRKb6Q5VzW9xEn/8VZThCR1dVBMVKMJM0MA7fZA=
> > -SHA256 (libatomic_ops-7.6.6.tar.gz) = mf6rxfVId/MU20+t6xCfCz4dGlSvtrSz37oecH444HQ=
> > -SIZE (gc-7.6.0.tar.gz) = 1111751
> > -SIZE (libatomic_ops-7.6.6.tar.gz) = 498187
> > +SHA256 (gc-8.0.4.tar.gz) = Q2oN3GexrAsEBbYalnW8qeB1yBVvTevR0G86VsfNKJ0=
> > +SHA256 (libatomic_ops-7.6.10.tar.gz) = WH7fYIF/Vtrx4as4pLPHKbjoRv9ntPYqYVcYNwjwma8=
> > +SIZE (gc-8.0.4.tar.gz) = 1160528
> > +SIZE (libatomic_ops-7.6.10.tar.gz) = 503734
> > Index: patches/patch-bdw-gc_pc_in
> > ===================================================================
> > RCS file: /cvs/ports/devel/boehm-gc/patches/patch-bdw-gc_pc_in,v
> > retrieving revision 1.1
> > diff -u -p -r1.1 patch-bdw-gc_pc_in
> > --- patches/patch-bdw-gc_pc_in 9 Dec 2009 20:36:49 -0000 1.1
> > +++ patches/patch-bdw-gc_pc_in 6 May 2019 12:00:07 -0000
> > @@ -1,10 +1,11 @@
> >  $OpenBSD: patch-bdw-gc_pc_in,v 1.1 2009/12/09 20:36:49 sthen Exp $
> > ---- bdw-gc.pc.in.orig Mon Dec  7 10:57:34 2009
> > -+++ bdw-gc.pc.in Mon Dec  7 10:57:46 2009
> > +Index: bdw-gc.pc.in
> > +--- bdw-gc.pc.in.orig
> > ++++ bdw-gc.pc.in
> >  @@ -6,5 +6,5 @@ includedir=@includedir@
> >   Name: Boehm-Demers-Weiser Conservative Garbage Collector
> >   Description: A garbage collector for C and C++
> >   Version: @PACKAGE_VERSION@
> > --Libs: -L${libdir} -lgc
> > -+Libs: -L${libdir} -lgc -pthread
> > +-Libs: -L${libdir} @ATOMIC_OPS_LIBS@ -lgc
> > ++Libs: -L${libdir} @ATOMIC_OPS_LIBS@ -lgc -pthread
> >   Cflags: -I${includedir}
> > Index: patches/patch-include_gc_config_macros_h
> > ===================================================================
> > RCS file: /cvs/ports/devel/boehm-gc/patches/patch-include_gc_config_macros_h,v
> > retrieving revision 1.3
> > diff -u -p -r1.3 patch-include_gc_config_macros_h
> > --- patches/patch-include_gc_config_macros_h 9 Feb 2014 06:01:54 -0000 1.3
> > +++ patches/patch-include_gc_config_macros_h 6 May 2019 12:00:07 -0000
> > @@ -1,21 +1,23 @@
> >  $OpenBSD: patch-include_gc_config_macros_h,v 1.3 2014/02/09 06:01:54 shadchin Exp $
> > ---- include/gc_config_macros.h.orig Sat Jan 18 23:56:01 2014
> > -+++ include/gc_config_macros.h Sat Jan 18 23:54:59 2014
> > -@@ -87,14 +87,14 @@
> > - # if defined(__mips) && !defined(__linux__)
> > - #   define GC_IRIX_THREADS
> > +Index: include/gc_config_macros.h
> > +--- include/gc_config_macros.h.orig
> > ++++ include/gc_config_macros.h
> > +@@ -81,15 +81,15 @@
> > + #   define GC_THREADS
> >   # endif
> > --# if defined(__sparc) && !defined(__linux__) \
> > + #elif defined(GC_THREADS)
> > +-# if defined(__linux__)
> >  +# if defined(__OpenBSD__)
> >  +#   define GC_OPENBSD_THREADS
> > -+# elif defined(__sparc) && !defined(__linux__) \
> > -      || defined(sun) && (defined(i386) || defined(__i386__) \
> > -                          || defined(__amd64__))
> > - #   define GC_SOLARIS_THREADS
> > - # elif defined(__APPLE__) && defined(__MACH__)
> > - #   define GC_DARWIN_THREADS
> > ++# elif defined(__linux__)
> > + #   define GC_LINUX_THREADS
> > + # elif defined(_PA_RISC1_1) || defined(_PA_RISC2_0) || defined(hppa) \
> > +        || defined(__HPPA) || (defined(__ia64) && defined(_HPUX_SOURCE))
> > + #   define GC_HPUX_THREADS
> > + # elif defined(__HAIKU__)
> > + #   define GC_HAIKU_THREADS
> >  -# elif defined(__OpenBSD__)
> >  -#   define GC_OPENBSD_THREADS
> > - # elif !defined(GC_LINUX_THREADS) && !defined(GC_HPUX_THREADS) \
> > -        && !defined(GC_OSF1_THREADS) && !defined(GC_IRIX_THREADS)
> > -     /* FIXME: Should we really need for FreeBSD and NetBSD to check     */
> > + # elif defined(__DragonFly__) || defined(__FreeBSD_kernel__) \
> > +        || (defined(__FreeBSD__) && !defined(SN_TARGET_ORBIS))
> > + #   define GC_FREEBSD_THREADS
> > Index: patches/patch-include_private_gcconfig_h
> > ===================================================================
> > RCS file: /cvs/ports/devel/boehm-gc/patches/patch-include_private_gcconfig_h,v
> > retrieving revision 1.22
> > diff -u -p -r1.22 patch-include_private_gcconfig_h
> > --- patches/patch-include_private_gcconfig_h 15 Apr 2017 14:02:46 -0000 1.22
> > +++ patches/patch-include_private_gcconfig_h 6 May 2019 12:00:07 -0000
> > @@ -1,22 +1,22 @@
> >  $OpenBSD: patch-include_private_gcconfig_h,v 1.22 2017/04/15 14:02:46 naddy Exp $
> >  
> >  - All OpenBSD mips platforms are 64-bit, so correct the wordsize and alignment
> > -- use __data_start instead of _fdata on OpenBSD/mips64
> >  - add support for OpenBSD/aarch64
> >  
> > ---- include/private/gcconfig.h.orig Tue Aug  2 21:36:14 2016
> > -+++ include/private/gcconfig.h Fri Apr 14 17:44:40 2017
> > -@@ -102,7 +102,8 @@
> > - # endif
> > +Index: include/private/gcconfig.h
> > +--- include/private/gcconfig.h.orig
> > ++++ include/private/gcconfig.h
> > +@@ -160,7 +160,8 @@ EXTERN_C_BEGIN
> >   # if defined(__aarch64__)
> >   #    define AARCH64
> > --#    if !defined(LINUX) && !defined(DARWIN) && !defined(FREEBSD)
> > -+#    if !defined(LINUX) && !defined(DARWIN) && !defined(FREEBSD) \
> > -+ && !defined(OPENBSD)
> > + #    if !defined(LINUX) && !defined(DARWIN) && !defined(FREEBSD) \
> > +-        && !defined(NETBSD) && !defined(NN_BUILD_TARGET_PLATFORM_NX)
> > ++        && !defined(NETBSD) && !defined(OPENBSD) \
> > ++ && !defined(NN_BUILD_TARGET_PLATFORM_NX)
> >   #      define NOSYS
> >   #      define mach_type_known
> >   #    endif
> > -@@ -137,6 +138,10 @@
> > +@@ -196,6 +197,10 @@ EXTERN_C_BEGIN
> >   #    define ARM32
> >   #    define mach_type_known
> >   # endif
> > @@ -27,26 +27,17 @@ $OpenBSD: patch-include_private_gcconfig
> >   # if defined(OPENBSD) && defined(__sh__)
> >   #    define SH
> >   #    define mach_type_known
> > -@@ -1712,14 +1717,15 @@
> > - #  endif
> > - #  ifdef OPENBSD
> > - #    define OS_TYPE "OPENBSD"
> > --#    define ALIGNMENT 4
> > -+#    define CPP_WORDSZ 64
> > -+#    define ALIGNMENT 8
> > +@@ -1076,7 +1081,8 @@ EXTERN_C_BEGIN
> > + #   endif
> > + #   ifdef OPENBSD
> > + #     define OS_TYPE "OPENBSD"
> > +-#     define ALIGNMENT 4
> > ++#     define CPP_WORDSZ 64
> > ++#     define ALIGNMENT 8
> >   #     ifndef GC_OPENBSD_THREADS
> > - #      include <sys/param.h>
> > - #      include <uvm/uvm_extern.h>
> > - #      define STACKBOTTOM ((ptr_t)USRSTACK)
> > - #    endif
> > --     extern int _fdata[];
> > --#    define DATASTART ((ptr_t)_fdata)
> > -+     extern int __data_start[];
> > -+#    define DATASTART ((ptr_t)__data_start)
> > -      extern int _end[];
> > - #    define DATAEND ((ptr_t)(&_end))
> > - #    define DYNAMIC_LOADING
> > -@@ -2165,6 +2171,19 @@
> > +         EXTERN_C_END
> > + #       include <sys/param.h>
> > +@@ -2328,6 +2334,19 @@ EXTERN_C_BEGIN
> >         extern char etext[];
> >   #     define DATASTART GC_FreeBSDGetDataStart(0x1000, (ptr_t)etext)
> >   #     define DATASTART_USES_BSDGETDATASTART
> > @@ -64,5 +55,5 @@ $OpenBSD: patch-include_private_gcconfig
> >  +#     define DATAEND ((ptr_t)(&_end))
> >  +#     define DYNAMIC_LOADING
> >   #   endif
> > - #   ifdef NOSYS
> > -       /* __data_start is usually defined in the target linker script.   */
> > + #   ifdef NETBSD
> > + #     define OS_TYPE "NETBSD"
> > Index: pkg/PLIST-main
> > ===================================================================
> > RCS file: /cvs/ports/devel/boehm-gc/pkg/PLIST-main,v
> > retrieving revision 1.5
> > diff -u -p -r1.5 PLIST-main
> > --- pkg/PLIST-main 12 Nov 2016 10:33:04 -0000 1.5
> > +++ pkg/PLIST-main 6 May 2019 12:00:07 -0000
> > @@ -20,7 +20,6 @@ include/gc/gc_typed.h
> >  include/gc/gc_version.h
> >  include/gc/javaxfc.h
> >  include/gc/leak_detector.h
> > -include/gc/weakpointer.h
> >  include/gc_cpp.h
> >  lib/libcord.a
> >  lib/libcord.la
> > @@ -33,38 +32,37 @@ lib/libgccpp.la
> >  @lib lib/libgccpp.so.${LIBgccpp_VERSION}
> >  lib/pkgconfig/bdw-gc.pc
> >  @man man/man3/gc.3
> > -share/gc/
> > -share/gc/AUTHORS
> > -share/gc/README.DGUX386
> > -share/gc/README.Mac
> > -share/gc/README.OS2
> > -share/gc/README.amiga
> > -share/gc/README.arm.cross
> > -share/gc/README.autoconf
> > -share/gc/README.cmake
> > -share/gc/README.cords
> > -share/gc/README.darwin
> > -share/gc/README.environment
> > -share/gc/README.ews4800
> > -share/gc/README.hp
> > -share/gc/README.linux
> > -share/gc/README.macros
> > -share/gc/README.md
> > -share/gc/README.rs6000
> > -share/gc/README.sgi
> > -share/gc/README.solaris2
> > -share/gc/README.symbian
> > -share/gc/README.uts
> > -share/gc/README.win32
> > -share/gc/README.win64
> > -share/gc/debugging.html
> > -share/gc/finalization.html
> > -@comment share/gc/gc.man
> > -share/gc/gcdescr.html
> > -share/gc/gcinterface.html
> > -share/gc/leak.html
> > -share/gc/overview.html
> > -share/gc/porting.html
> > -share/gc/scale.html
> > -share/gc/simple_example.html
> > -share/gc/tree.html
> > +share/doc/gc/
> > +share/doc/gc/AUTHORS
> > +share/doc/gc/README.DGUX386
> > +share/doc/gc/README.Mac
> > +share/doc/gc/README.OS2
> > +share/doc/gc/README.amiga
> > +share/doc/gc/README.arm.cross
> > +share/doc/gc/README.autoconf
> > +share/doc/gc/README.cmake
> > +share/doc/gc/README.cords
> > +share/doc/gc/README.darwin
> > +share/doc/gc/README.environment
> > +share/doc/gc/README.ews4800
> > +share/doc/gc/README.hp
> > +share/doc/gc/README.linux
> > +share/doc/gc/README.macros
> > +share/doc/gc/README.md
> > +share/doc/gc/README.rs6000
> > +share/doc/gc/README.sgi
> > +share/doc/gc/README.solaris2
> > +share/doc/gc/README.symbian
> > +share/doc/gc/README.uts
> > +share/doc/gc/README.win32
> > +share/doc/gc/README.win64
> > +share/doc/gc/debugging.md
> > +share/doc/gc/finalization.md
> > +share/doc/gc/gcdescr.md
> > +share/doc/gc/gcinterface.md
> > +share/doc/gc/leak.md
> > +share/doc/gc/overview.md
> > +share/doc/gc/porting.md
> > +share/doc/gc/scale.md
> > +share/doc/gc/simple_example.md
> > +share/doc/gc/tree.md
> >  
>

Reply | Threaded
Open this post in threaded view
|

Re: w3m broken, Re: update boehm-gc 8.0.4 libatomic_ops 7.6.10

Christian Weisgerber
[hidden email]:

> On amd64 latest snap, a recent w3m package installation segfaults on run:
>
> Program received signal SIGSEGV, Segmentation fault.
> 0x000016d1b18988e7 in GC_mark_from () from /usr/local/lib/libgc.so.4.0
> Current language:  auto; currently minimal

Fallout from changes to ld.so.  Fixed in -current.

--
Christian "naddy" Weisgerber                          [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: w3m broken, Re: update boehm-gc 8.0.4 libatomic_ops 7.6.10

lists-2
Fri, 7 Jun 2019 23:13:51 +0200 Christian Weisgerber <[hidden email]>

> [hidden email]:
>
> > On amd64 latest snap, a recent w3m package installation segfaults on run:
> >
> > Program received signal SIGSEGV, Segmentation fault.
> > 0x000016d1b18988e7 in GC_mark_from () from /usr/local/lib/libgc.so.4.0
> > Current language:  auto; currently minimal  
>
> Fallout from changes to ld.so.  Fixed in -current.
>

Thanks, confirmed working again on latest snapshots.  Much appreciated.