Hi,

this is not always reproducible, but I've seen it crashing in WebServices, but 
also as below now, in Performance, here's one I properly catched with some 
information:

Making all for doc Performance...
autogsdoc -Project Performance -DocumentationDirectory Performance  
-MakeDependencies Performance/dependencies GSCache.h GSFIFO.h GSIOThreadPool.h 
GSLinkedList.h GSThreadPool.h GSThroughput.h GSTicker.h GSSkipMutableArray.h 
GSUniqued.h 
2025-03-19 11:02:28.867 autogsdoc[40804:8011684538824] String mismatch in merge 
for (type, NSUInteger). S:GSLinkedList, D:GSIOThreadPool
gmake[1]: *** Deleting file 'Performance/dependencies'
gmake[1]: *** No rule to make target 'Performance/dependencies', needed by 
'internal-doc-all_'.  Stop.
gmake: *** [/usr/local/share/GNUstep/Makefiles/Master/rules.make:297: 
Performance.all.doc.variables] Error 2

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /usr/local/bin/autogsdoc...
[New process 153946]
Core was generated by `autogsdoc'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00000749342ff2d7 in 
tsl::detail_robin_hash::bucket_entry<std::__1::pair<void const*, (anonymous 
namespace)::WeakRef*>, false>::dist_from_ideal_bucket() const () from 
/usr/local/lib/libobjc2.so.3.0
(gdb) bt
#0  0x00000749342ff2d7 in 
tsl::detail_robin_hash::bucket_entry<std::__1::pair<void const*, (anonymous 
namespace)::WeakRef*>, false>::dist_from_ideal_bucket() const () from 
/usr/local/lib/libobjc2.so.3.0
#1  0x00000749342ff1a8 in 
tsl::detail_robin_hash::robin_hash<std::__1::pair<void const*, (anonymous 
namespace)::WeakRef*>, tsl::robin_map<void const*, (anonymous 
namespace)::WeakRef*, std::__1::hash<void const*>, std::__1::equal_to<void 
const*>, (anonymous namespace)::malloc_allocator<std::__1::pair<void const*, 
(anonymous namespace)::WeakRef*> >, false, 
tsl::rh::prime_growth_policy>::KeySelect, tsl::robin_map<void const*, 
(anonymous namespace)::WeakRef*, std::__1::hash<void const*>, 
std::__1::equal_to<void const*>, (anonymous 
namespace)::malloc_allocator<std::__1::pair<void const*, (anonymous 
namespace)::WeakRef*> >, false, tsl::rh::prime_growth_policy>::ValueSelect, 
std::__1::hash<void const*>, std::__1::equal_to<void const*>, (anonymous 
namespace)::malloc_allocator<std::__1::pair<void const*, (anonymous 
namespace)::WeakRef*> >, false, 
tsl::rh::prime_growth_policy>::robin_iterator<true> 
tsl::detail_robin_hash::robin_hash<std::__1::pair<void const*, (anonymous 
namespace)::WeakRef*>, tsl::robin_map<void const*, (anonymous 
namespace)::WeakRef*, std::__1::hash<void const*>, std::__1::equal_to<void 
const*>, (anonymous namespace)::malloc_allocator<std::__1::pair<void const*, 
(anonymous namespace)::WeakRef*> >, false, 
tsl::rh::prime_growth_policy>::KeySelect, tsl::robin_map<void const*, 
(anonymous namespace)::WeakRef*, std::__1::hash<void const*>, 
std::__1::equal_to<void const*>, (anonymous 
namespace)::malloc_allocator<std::__1::pair<void const*, (anonymous 
namespace)::WeakRef*> >, false, tsl::rh::prime_growth_policy>::ValueSelect, 
std::__1::hash<void const*>, std::__1::equal_to<void const*>, (anonymous 
namespace)::malloc_allocator<std::__1::pair<void const*, (anonymous 
namespace)::WeakRef*> >, false, tsl::rh::prime_growth_policy>::find_impl<void 
const*>(void const* const&, unsigned long) const () from 
/usr/local/lib/libobjc2.so.3.0
#2  0x00000749342ff0e2 in 
tsl::detail_robin_hash::robin_hash<std::__1::pair<void const*, (anonymous 
namespace)::WeakRef*>, tsl::robin_map<void const*, (anonymous 
namespace)::WeakRef*, std::__1::hash<void const*>, std::__1::equal_to<void 
const*>, (anonymous namespace)::malloc_allocator<std::__1::pair<void const*, 
(anonymous namespace)::WeakRef*> >, false, 
tsl::rh::prime_growth_policy>::KeySelect, tsl::robin_map<void const*, 
(anonymous namespace)::WeakRef*, std::__1::hash<void const*>, 
std::__1::equal_to<void const*>, (anonymous 
namespace)::malloc_allocator<std::__1::pair<void const*, (anonymous 
namespace)::WeakRef*> >, false, tsl::rh::prime_growth_policy>::ValueSelect, 
std::__1::hash<void const*>, std::__1::equal_to<void const*>, (anonymous 
namespace)::malloc_allocator<std::__1::pair<void const*, (anonymous 
namespace)::WeakRef*> >, false, 
tsl::rh::prime_growth_policy>::robin_iterator<true> 
tsl::detail_robin_hash::robin_hash<std::__1::pair<void const*, (anonymous 
namespace)::WeakRef*>, tsl::robin_map<void const*, (anonymous 
namespace)::WeakRef*, std::__1::hash<void const*>, std::__1::equal_to<void 
const*>, (anonymous namespace)::malloc_allocator<std::__1::pair<void const*, 
(anonymous namespace)::WeakRef*> >, false, 
tsl::rh::prime_growth_policy>::KeySelect, tsl::robin_map<void const*, 
(anonymous namespace)::WeakRef*, std::__1::hash<void const*>, 
std::__1::equal_to<void const*>, (anonymous 
namespace)::malloc_allocator<std::__1::pair<void const*, (anonymous 
namespace)::WeakRef*> >, false, tsl::rh::prime_growth_policy>::ValueSelect, 
std::__1::hash<void const*>, std::__1::equal_to<void const*>, (anonymous 
namespace)::malloc_allocator<std::__1::pair<void const*, (anonymous 
namespace)::WeakRef*> >, false, tsl::rh::prime_growth_policy>::find<void 
const*>(void const* const&, unsigned long) const () from 
/usr/local/lib/libobjc2.so.3.0
#3  0x00000749342ff026 in 
tsl::detail_robin_hash::robin_hash<std::__1::pair<void const*, (anonymous 
namespace)::WeakRef*>, tsl::robin_map<void const*, (anonymous 
namespace)::WeakRef*, std::__1::hash<void const*>, std::__1::equal_to<void 
const*>, (anonymous namespace)::malloc_allocator<std::__1::pair<void const*, 
(anonymous namespace)::WeakRef*> >, false, 
tsl::rh::prime_growth_policy>::KeySelect, tsl::robin_map<void const*, 
(anonymous namespace)::WeakRef*, std::__1::hash<void const*>, 
std::__1::equal_to<void const*>, (anonymous 
namespace)::malloc_allocator<std::__1::pair<void const*, (anonymous 
namespace)::WeakRef*> >, false, tsl::rh::prime_growth_policy>::ValueSelect, 
std::__1::hash<void const*>, std::__1::equal_to<void const*>, (anonymous 
namespace)::malloc_allocator<std::__1::pair<void const*, (anonymous 
namespace)::WeakRef*> >, false, 
tsl::rh::prime_growth_policy>::robin_iterator<false> 
tsl::detail_robin_hash::robin_hash<std::__1::pair<void const*, (anonymous 
namespace)::WeakRef*>, tsl::robin_map<void const*, (anonymous 
namespace)::WeakRef*, std::__1::hash<void const*>, std::__1::equal_to<void 
const*>, (anonymous namespace)::malloc_allocator<std::__1::pair<void const*, 
(anonymous namespace)::WeakRef*> >, false, 
tsl::rh::prime_growth_policy>::KeySelect, tsl::robin_map<void const*, 
(anonymous namespace)::WeakRef*, std::__1::hash<void const*>, 
std::__1::equal_to<void const*>, (anonymous 
namespace)::malloc_allocator<std::__1::pair<void const*, (anonymous 
namespace)::WeakRef*> >, false, tsl::rh::prime_growth_policy>::ValueSelect, 
std::__1::hash<void const*>, std::__1::equal_to<void const*>, (anonymous 
namespace)::malloc_allocator<std::__1::pair<void const*, (anonymous 
namespace)::WeakRef*> >, false, tsl::rh::prime_growth_policy>::find_impl<void 
const*>(void const* const&, unsigned long) () from 
/usr/local/lib/libobjc2.so.3.0
#4  0x0000074934303aa6 in 
tsl::detail_robin_hash::robin_hash<std::__1::pair<void const*, (anonymous 
namespace)::WeakRef*>, tsl::robin_map<void const*, (anonymous 
namespace)::WeakRef*, std::__1::hash<void const*>, std::__1::equal_to<void 
const*>, (anonymous namespace)::malloc_allocator<std::__1::pair<void const*, 
(anonymous namespace)::WeakRef*> >, false, 
tsl::rh::prime_growth_policy>::KeySelect, tsl::robin_map<void const*, 
(anonymous namespace)::WeakRef*, std::__1::hash<void const*>, 
std::__1::equal_to<void const*>, (anonymous 
namespace)::malloc_allocator<std::__1::pair<void const*, (anonymous 
namespace)::WeakRef*> >, false, tsl::rh::prime_growth_policy>::ValueSelect, 
std::__1::hash<void const*>, std::__1::equal_to<void const*>, (anonymous 
namespace)::malloc_allocator<std::__1::pair<void const*, (anonymous 
namespace)::WeakRef*> >, false, 
tsl::rh::prime_growth_policy>::robin_iterator<false> 
tsl::detail_robin_hash::robin_hash<std::__1::pair<void const*, (anonymous 
namespace)::WeakRef*>, tsl::robin_map<void const*, (anonymous 
namespace)::WeakRef*, std::__1::hash<void const*>, std::__1::equal_to<void 
const*>, (anonymous namespace)::malloc_allocator<std::__1::pair<void const*, 
(anonymous namespace)::WeakRef*> >, false, 
tsl::rh::prime_growth_policy>::KeySelect, tsl::robin_map<void const*, 
(anonymous namespace)::WeakRef*, std::__1::hash<void const*>, 
std::__1::equal_to<void const*>, (anonymous 
namespace)::malloc_allocator<std::__1::pair<void const*, (anonymous 
namespace)::WeakRef*> >, false, tsl::rh::prime_growth_policy>::ValueSelect, 
std::__1::hash<void const*>, std::__1::equal_to<void const*>, (anonymous 
namespace)::malloc_allocator<std::__1::pair<void const*, (anonymous 
namespace)::WeakRef*> >, false, tsl::rh::prime_growth_policy>::find<void 
const*>(void const* const&) () from /usr/local/lib/libobjc2.so.3.0
#5  0x00000749342fdf1a in tsl::robin_map<void const*, (anonymous 
namespace)::WeakRef*, std::__1::hash<void const*>, std::__1::equal_to<void 
const*>, (anonymous namespace)::malloc_allocator<std::__1::pair<void const*, 
(anonymous namespace)::WeakRef*> >, false, 
tsl::rh::prime_growth_policy>::find(void const* const&) () from 
/usr/local/lib/libobjc2.so.3.0
#6  0x00000749342fc42b in objc_delete_weak_refs () from 
/usr/local/lib/libobjc2.so.3.0
#7  0x00000749342fc283 in objc_release_fast_no_destroy_np () from 
/usr/local/lib/libobjc2.so.3.0
#8  0x00000749342fc573 in objc_release_fast_np () from 
/usr/local/lib/libobjc2.so.3.0
#9  0x00000748ac1454f4 in release_fast (anObject=0x749590ada28) at 
NSObject.m:590
#10 0x00000748ac14549a in -[NSObject release] (self=0x749590ada28, 
_cmd=0x748ac3512d8 <.objc_selector_release_Vv160:8>) at NSObject.m:2092
#11 0x00000748ac208397 in +[NSUserDefaults atExit] (self=0x748ac31ab18 
<._OBJC_CLASS_NSUserDefaults>, _cmd=0x748ac362b28 <.objc_selector_atExit_>) at 
NSUserDefaults.m:664
#12 0x00000748ac29e441 in handleExit () at NSObject+GNUstepBase.m:212
#13 0x000007491b35813e in _libc___cxa_finalize (dso=0x0) at 
/usr/src/lib/libc/stdlib/atexit.c:177
#14 0x000007491b3ca8b5 in _libc_exit (status=0) at 
/usr/src/lib/libc/stdlib/exit.c:54
#15 0x0000074677fc53a2 in _start ()
(gdb) frame 11
#11 0x00000748ac208397 in +[NSUserDefaults atExit] (self=0x748ac31ab18 
<._OBJC_CLASS_NSUserDefaults>, _cmd=0x748ac362b28 <.objc_selector_atExit_>) at 
NSUserDefaults.m:664
664       DESTROY(sharedDefaults);
(gdb) list
659      */
660     @implementation NSUserDefaults: NSObject
661     
662     + (void) atExit
663     {
664       DESTROY(sharedDefaults);
665       DESTROY(bundleIdentifier);
666       DESTROY(processName);
667       DESTROY(argumentsDictionary);
668       DESTROY(classLock);
(gdb) frame 10
#10 0x00000748ac14549a in -[NSObject release] (self=0x749590ada28, 
_cmd=0x748ac3512d8 <.objc_selector_release_Vv160:8>) at NSObject.m:2092
2092      release_fast(self);
(gdb) list
2087     * In GNUstep, the [NSObject+enableDoubleReleaseCheck:] method may be 
used
2088     * to turn on checking for ratain/release errors in this method.
2089     */
2090    - (oneway void) release
2091    {
2092      release_fast(self);
2093    }
2094    
2095    /**
2096     * The class implementation of the release method is a dummy method
(gdb) print self
$1 = (NSObject *) 0x749590ada28
(gdb) po self
You can't do that without a process to debug.
(gdb) quit

This is on OpenBSD amd64, with all latest releases of 
gnustep-make/base/gui/back etc.


This breaks bulk build of OpenBSD packages, as a stop-gap, is there a make flag 
to disable building documentation?

OpenBSD snapshots are updated to ship all latest releases, and release lock for 
7.7 version will be there soon, hope for a quick solution, to get this in 
before.

Sebastian


Reply via email to