Open afalkenhahn opened 3 months ago
Do not use different code with the same name. E.g.
hb-font.hh:
hb_bool_t get_font_h_extents (hb_font_extents_t *extents)
{
hb_memset (extents, 0, sizeof (*extents));
return klass->get.f.font_h_extents (this, user_data,
extents,
!klass->user_data ? nullptr : klass->user_data->font_h_extents);
}
and hb-ft.cc:
static hb_bool_t
hb_ft_get_font_h_extents (hb_font_t *font HB_UNUSED,
void *font_data,
hb_font_extents_t *metrics,
void *user_data HB_UNUSED)
...
EDIT: those have a different signature... ... must be a different reason...
=> check the asm of the mentioned files and look, what's the code difference.
Hmm, I don't understand. get_font_h_extents
and hb_ft_get_font_h_extents
clearly are different names. Or what exactly are you referring to when talking about "same names"?
I was wrong and updated the ticket text already.
Please check the section contents of those files with m68k-amigaos-objdump or create asm from the sources and check. The code must be the same.
Ok, this is the output of m68k-amigaos-objdump -t hb.buffer.o:
../Pangomonium/harfbuzz-8.0.1/mktool/os3gcc6/src/hb-buffer.o: file format amiga
SYMBOL TABLE:
00000000 *UND* 0001 81 __hb_Null_hb_unicode_funcs_t
00000000 *UND* 0001 81 __hb_CrapPool
00000000 *UND* 0002 81 _memcpy
00000000 *UND* 0002 81 _realloc
00000000 *UND* 0006 81 _memmove
00000000 *UND* 0004 81 _hb_unicode_funcs_destroy
00000000 *UND* 0001 81 _hb_script_get_horizontal_direction
00000000 *UND* 0001 81 _hb_language_get_default
00000000 *UND* 0003 81 _hb_unicode_funcs_reference
00000000 *UND* 0005 81 _free
00000000 *UND* 0001 81 _vsnprintf
00000000 *UND* 0002 81 _calloc
00000000 *UND* 0002 81 _hb_unicode_funcs_get_default
00000000 *UND* 0001 81 _memset
00000000 l .text 0000 21 __ZStL19piecewise_construct
00000002 l .text 0000 21 __ZL20__gthread_key_deletei
0000000c l .text 0000 21 __ZStL13allocator_arg
0000000d l .text 0000 21 __ZStL6ignore
0000000e l .text 0000 21 __ZN9__gnu_cxxL21__default_lock_policyE
00000012 l .text 0000 21 __ZL9hb_memcpyPvPKvj
0000003c l .text 0000 21 __ZL9hb_memsetPvij
00000066 l .text 0000 21 __ZL25hb_unsigned_mul_overflowsjjPj
0000009e l .text 0000 21 __Z13_hb_debug_msgILi0EEvPKcPKvS1_bjiS1_z
000000b0 l .text 0000 21 __ZNK4._96clIRjjEEDTqugefp_fp0_fp_fp0_EOT_OT0_
000000d2 l .text 0000 21 __Zor16hb_glyph_flags_tS_
000000e2 l .text 0000 21 __Zco16hb_glyph_flags_t
000000f0 l .text 0000 21 __Zor22hb_buffer_diff_flags_tS_
00000100 l .text 0000 21 __ZoRR22hb_buffer_diff_flags_tS_
00000124 l .text 0000 21 __Zor25hb_buffer_scratch_flags_tS_
00000134 l .text 0000 21 __ZoRR25hb_buffer_scratch_flags_tS_
0000047a g .text 0000 01 __ZN11hb_buffer_t13make_room_forEjj
00000ef8 g .text 0000 01 __ZN11hb_buffer_t19merge_clusters_implEjj
00000158 l .text 0000 21 __ZNK4._95clIRjS1_EEDTqulefp_fp0_fp_fp0_EOT_OT0_
00000308 g .text 0000 01 __ZN11hb_buffer_t7enlargeEj
0000017a l .text 0000 21 __ZNK4._95clIRjRKjEEDTqulefp_fp0_fp_fp0_EOT_OT0_
0000019c l .text 0000 21 __ZNK4._95clIRKjS2_EEDTqulefp_fp0_fp_fp0_EOT_OT0_
000018b6 g .text 0000 01 __hb_Null_hb_buffer_t
000001be l .text 0000 21 __ZL10table_tags
00002d20 l .text 0000 21 __Z11hb_in_rangeIjEbT_S0_S0_
000001c6 g .text 0000 01 _hb_segment_properties_equal
0000023c g .text 0000 01 _hb_segment_properties_hash
00000276 g .text 0000 01 _hb_segment_properties_overlay
0000051c g .text 0000 01 __ZN11hb_buffer_t13shift_forwardEj
0000064a g .text 0000 01 __ZN11hb_buffer_t18get_scratch_bufferEPj
0000069a g .text 0000 01 __ZN11hb_buffer_t7similarERKS_
00000720 g .text 0000 01 __ZN11hb_buffer_t5resetEv
0000078a g .text 0000 01 __ZN11hb_buffer_t5clearEv
0000085c g .text 0000 01 __ZN11hb_buffer_t5enterEv
0000092e g .text 0000 01 __ZN11hb_buffer_t5leaveEv
00000964 g .text 0000 01 __ZN11hb_buffer_t3addEjj
000009f4 g .text 0000 01 __ZN11hb_buffer_t8add_infoERK15hb_glyph_info_t
00000a60 g .text 0000 01 __ZN11hb_buffer_t12clear_outputEv
00000a9c g .text 0000 01 __ZN11hb_buffer_t15clear_positionsEv
00000af8 g .text 0000 01 __ZN11hb_buffer_t4syncEv
00000bca g .text 0000 01 __ZN11hb_buffer_t11sync_so_farEv
00000c4a g .text 0000 01 __ZN11hb_buffer_t7move_toEj
00000e34 g .text 0000 01 __ZN11hb_buffer_t9set_masksEjjjj
00001184 g .text 0000 01 __ZN11hb_buffer_t18merge_out_clustersEjj
00001398 g .text 0000 01 __ZN11hb_buffer_t12delete_glyphEv
00001580 g .text 0000 01 __ZN11hb_buffer_t21delete_glyphs_inplaceEPFbPK15hb_glyph_info_tE
000017cc g .text 0000 01 __ZN11hb_buffer_t24guess_segment_propertiesEv
00001960 g .text 0000 01 _hb_buffer_create
00002d60 l .text 0000 21 __Z16hb_object_createI11hb_buffer_tJEEPT_DpT0_
000019ee g .text 0000 01 _hb_buffer_get_empty
000019a8 g .text 0000 01 _hb_buffer_create_similar
000019ca g .text 0000 01 _hb_buffer_reset
00002e04 l .text 0000 21 __Z22hb_object_is_immutableI11hb_buffer_tEbPKT_
000019fc g .text 0000 01 _hb_buffer_reference
00002e22 l .text 0000 21 __Z19hb_object_referenceI11hb_buffer_tEPT_S2_
00001a0e g .text 0000 01 _hb_buffer_destroy
00002e72 l .text 0000 21 __Z17hb_object_destroyI11hb_buffer_tEbPT_
00001a90 g .text 0000 01 _hb_buffer_set_user_data
00002ed8 l .text 0000 21 __Z23hb_object_set_user_dataI11hb_buffer_tEbPT_P18hb_user_data_key_tPvPFvS5_Ei
00001abc g .text 0000 01 _hb_buffer_get_user_data
00002fa4 l .text 0000 21 __Z23hb_object_get_user_dataIK11hb_buffer_tEPvPT_P18hb_user_data_key_t
00001ad2 g .text 0000 01 _hb_buffer_set_content_type
00001ae6 g .text 0000 01 _hb_buffer_get_content_type
00001af6 g .text 0000 01 _hb_buffer_set_unicode_funcs
00001b48 g .text 0000 01 _hb_buffer_get_unicode_funcs
00001b58 g .text 0000 01 _hb_buffer_set_direction
00001b7c g .text 0000 01 _hb_buffer_get_direction
00001b8c g .text 0000 01 _hb_buffer_set_script
00001bb0 g .text 0000 01 _hb_buffer_get_script
00001bc0 g .text 0000 01 _hb_buffer_set_language
00001be4 g .text 0000 01 _hb_buffer_get_language
00001bf4 g .text 0000 01 _hb_buffer_set_segment_properties
00001c26 g .text 0000 01 _hb_buffer_get_segment_properties
00001c48 g .text 0000 01 _hb_buffer_set_flags
00001c6c g .text 0000 01 _hb_buffer_get_flags
00001c7c g .text 0000 01 _hb_buffer_set_cluster_level
00001ca0 g .text 0000 01 _hb_buffer_get_cluster_level
00001cb0 g .text 0000 01 _hb_buffer_set_replacement_codepoint
00001cd4 g .text 0000 01 _hb_buffer_get_replacement_codepoint
00001ce4 g .text 0000 01 _hb_buffer_set_invisible_glyph
00001d08 g .text 0000 01 _hb_buffer_get_invisible_glyph
00001d18 g .text 0000 01 _hb_buffer_set_not_found_glyph
00001d3c g .text 0000 01 _hb_buffer_get_not_found_glyph
00001d4c g .text 0000 01 _hb_buffer_clear_contents
00001d70 g .text 0000 01 _hb_buffer_pre_allocate
00001d90 g .text 0000 01 _hb_buffer_allocation_successful
00001da8 g .text 0000 01 _hb_buffer_add
00001dd6 g .text 0000 01 _hb_buffer_set_length
00001ef8 g .text 0000 01 _hb_buffer_get_length
00001f08 g .text 0000 01 _hb_buffer_get_glyph_infos
00001f2c g .text 0000 01 _hb_buffer_get_glyph_positions
00001f7a g .text 0000 01 _hb_buffer_has_positions
00001f92 g .text 0000 01 _hb_glyph_info_get_glyph_flags
00001fa6 g .text 0000 01 _hb_buffer_reverse
00001fbc g .text 0000 01 _hb_buffer_reverse_range
00001fdc g .text 0000 01 _hb_buffer_reverse_clusters
00001ff2 g .text 0000 01 _hb_buffer_guess_segment_properties
00002006 g .text 0000 01 _hb_buffer_add_utf8
00003000 l .text 0000 21 __Z17hb_buffer_add_utfI9hb_utf8_tEvP11hb_buffer_tPKNT_11codepoint_tEiji
0000202c g .text 0000 01 _hb_buffer_add_utf16
00003232 l .text 0000 21 __Z17hb_buffer_add_utfI13hb_utf16_xe_tItEEvP11hb_buffer_tPKNT_11codepoint_tEiji
00002052 g .text 0000 01 _hb_buffer_add_utf32
00003476 l .text 0000 21 __Z17hb_buffer_add_utfI13hb_utf32_xe_tIjLb1EEEvP11hb_buffer_tPKNT_11codepoint_tEiji
00002078 g .text 0000 01 _hb_buffer_add_latin1
000036bc l .text 0000 21 __Z17hb_buffer_add_utfI11hb_latin1_tEvP11hb_buffer_tPKNT_11codepoint_tEiji
0000209e g .text 0000 01 _hb_buffer_add_codepoints
000038ee l .text 0000 21 __Z17hb_buffer_add_utfI13hb_utf32_xe_tIjLb0EEEvP11hb_buffer_tPKNT_11codepoint_tEiji
000020c4 g .text 0000 01 _hb_buffer_append
0000240a l .text 0000 21 __ZL22compare_info_codepointPK15hb_glyph_info_tS1_
0000242a l .text 0000 21 __ZL24normalize_glyphs_clusterP11hb_buffer_tjjb
00003b34 l .text 0000 21 __Z14hb_stable_sortI15hb_glyph_info_tS0_19hb_glyph_position_tEvPT_jPFiPKT0_S6_EPT1_
00002738 g .text 0000 01 _hb_buffer_normalize_glyphs
000027e2 g .text 0000 01 __ZN11hb_buffer_t4sortEjjPFiPK15hb_glyph_info_tS2_E
0000293e g .text 0000 01 _hb_buffer_diff
00002c16 g .text 0000 01 _hb_buffer_set_message_func
00002ca4 g .text 0000 01 __ZN11hb_buffer_t12message_implEP9hb_font_tPKcPv
00003cd6 l .text 0000 21 __ZNK4._92clI15hb_glyph_info_tEEvRT_S3_
00003cf0 l .text 0000 21 __ZNK4._92clI19hb_glyph_position_tEEvRT_S3_
00002d3e l .text 0000 21 __ZNK4._96clIRjS1_EEDTqugefp_fp0_fp_fp0_EOT_OT0_
00003d0a l .text 0000 21 __Z14hb_object_initI11hb_buffer_tEvPT_
00003fa4 l .text 0000 21 __ZZ16hb_object_createI11hb_buffer_tJEEPT_DpT0_E19__PRETTY_FUNCTION__
00003d62 l .text 0000 21 __Z15hb_object_traceI11hb_buffer_tEvPKT_PKc
00003fe6 l .text 0000 21 __ZZ19hb_object_referenceI11hb_buffer_tEPT_S2_E19__PRETTY_FUNCTION__
00004021 l .text 0000 21 __ZZ17hb_object_destroyI11hb_buffer_tEbPT_E19__PRETTY_FUNCTION__
00003da6 l .text 0000 21 __Z14hb_object_finiI11hb_buffer_tEvPT_
00003e02 l .text 0000 21 __Z4CrapIN20hb_user_data_array_t19hb_user_data_item_tEERT_v
00003e86 l .text 0000 21 __ZNK4._91clIRKP18hb_user_data_key_tRN20hb_user_data_array_t19hb_user_data_item_tEEEDTcldtdefpT4implcl7forwardIT_Efp_Ecl7forwardIT0_Efp0_Ecv11hb_priorityILj16EE_EEEOS8_OS9_
00003ecc l .text 0000 21 __ZNK4._91clIRKN20hb_user_data_array_t19hb_user_data_item_tERS2_EEDTcldtdefpT4implcl7forwardIT_Efp_Ecl7forwardIT0_Efp0_Ecv11hb_priorityILj16EE_EEEOS6_OS7_
00003e3a l .text 0000 21 __Z14_hb_cmp_methodIjKN12hb_bit_set_t10page_map_tEJEEiPKvS4_DpT1_
00003e62 l .text 0000 21 __Z14_hb_cmp_methodIN12hb_bit_set_t10page_map_tEKS1_JEEiPKvS4_DpT1_
00003f3a l .text 0000 21 __ZNK4._914implIRKP18hb_user_data_key_tRN20hb_user_data_array_t19hb_user_data_item_tEEEDTeqcl7forwardIT0_Efp0_Ecl7forwardIT_Efp_EEOS9_OS8_11hb_priorityILj0EE
00003f70 l .text 0000 21 __ZNK4._914implIRKN20hb_user_data_array_t19hb_user_data_item_tERS2_EEDTeqcl7forwardIT_Efp_Ecl7forwardIT0_Efp0_EEOS6_OS7_11hb_priorityILj1EE
00003f12 l .text 0000 21 __Z14_hb_cmp_methodIjKN11hb_ot_map_t13feature_map_tEJEEiPKvS4_DpT1_
0000405a l .text 0000 21 __EH_FRAME_BEGIN__
00000000 l .bss 0000 21 __ZL8hb_deref
00000001 l .bss 0000 21 __ZL11hb_identity
00000002 l .bss 0000 21 __ZL12hb_lidentity
00000003 l .bss 0000 21 __ZL12hb_ridentity
00000004 l .bss 0000 21 __ZL7hb_bool
00000005 l .bss 0000 21 __ZL7hb_hash
00000006 l .bss 0000 21 __ZL9hb_invoke
00000007 l .bss 0000 21 __ZL6hb_has
00000008 l .bss 0000 21 __ZL8hb_match
00000009 l .bss 0000 21 __ZL6hb_get
0000000a l .bss 0000 21 __ZL8hb_equal
0000000b l .bss 0000 21 __ZL7hb_swap
0000000c l .bss 0000 21 __ZL8hb_first
0000000d l .bss 0000 21 __ZL9hb_second
0000000e l .bss 0000 21 __ZL6hb_min
0000000f l .bss 0000 21 __ZL6hb_max
00000010 l .bss 0000 21 __ZL8hb_clamp
00000011 l .bss 0000 21 __ZL14hb_bitwise_and
00000012 l .bss 0000 21 __ZL13hb_bitwise_or
00000013 l .bss 0000 21 __ZL14hb_bitwise_xor
00000014 l .bss 0000 21 __ZL13hb_bitwise_lt
00000015 l .bss 0000 21 __ZL13hb_bitwise_gt
00000016 l .bss 0000 21 __ZL13hb_bitwise_le
00000017 l .bss 0000 21 __ZL13hb_bitwise_ge
00000018 l .bss 0000 21 __ZL14hb_bitwise_neg
00000019 l .bss 0000 21 __ZL6hb_add
0000001a l .bss 0000 21 __ZL6hb_sub
0000001b l .bss 0000 21 __ZL7hb_rsub
0000001c l .bss 0000 21 __ZL6hb_mul
0000001d l .bss 0000 21 __ZL6hb_div
0000001e l .bss 0000 21 __ZL6hb_mod
0000001f l .bss 0000 21 __ZL6hb_pos
00000020 l .bss 0000 21 __ZL6hb_neg
00000021 l .bss 0000 21 __ZL6hb_inc
00000022 l .bss 0000 21 __ZL6hb_dec
00000023 l .bss 0000 21 __ZL7hb_iter
00000024 l .bss 0000 21 __ZL6hb_len
00000025 l .bss 0000 21 __ZL6hb_map
00000026 l .bss 0000 21 __ZL22hb_map_retains_sorting
00000027 l .bss 0000 21 __ZL13hb_map_sorted
00000028 l .bss 0000 21 __ZL9hb_filter
00000029 l .bss 0000 21 __ZL9hb_reduce
0000002a l .bss 0000 21 __ZL6hb_zip
0000002b l .bss 0000 21 __ZL9hb_concat
0000002c l .bss 0000 21 __ZL8hb_apply
0000002d l .bss 0000 21 __ZL8hb_range
0000002e l .bss 0000 21 __ZL7hb_iota
0000002f l .bss 0000 21 __ZL9hb_repeat
00000030 l .bss 0000 21 __ZL12hb_enumerate
00000031 l .bss 0000 21 __ZL7hb_take
00000032 l .bss 0000 21 __ZL7hb_chop
00000033 l .bss 0000 21 __ZL7hb_sink
00000034 l .bss 0000 21 __ZL8hb_drain
00000035 l .bss 0000 21 __ZL8hb_unzip
00000036 l .bss 0000 21 __ZL6hb_all
00000037 l .bss 0000 21 __ZL6hb_any
00000038 l .bss 0000 21 __ZL7hb_none
00000000 gw .text._ZnwjPv 0000 41 __ZnwjPv
00000000 gw .text._ZN10hb_mutex_t4initEv 0000 41 __ZN10hb_mutex_t4initEv
00000000 gw .text._ZN10hb_mutex_t4lockEv 0000 41 __ZN10hb_mutex_t4lockEv
00000000 gw .text._ZN10hb_mutex_t6unlockEv 0000 41 __ZN10hb_mutex_t6unlockEv
00000000 gw .text._ZN10hb_mutex_t4finiEv 0000 41 __ZN10hb_mutex_t4finiEv
00000000 gw .text._Z22hb_atomic_ptr_impl_getPPv 0000 41 __Z22hb_atomic_ptr_impl_getPPv
00000000 gw .text._ZN15hb_atomic_int_tC1Ei 0000 41 __ZN15hb_atomic_int_tC1Ei
00000000 gw .text._ZN15hb_atomic_int_taSEi 0000 41 __ZN15hb_atomic_int_taSEi
00000000 gw .text._ZNK15hb_atomic_int_tcviEv 0000 41 __ZNK15hb_atomic_int_tcviEv
00000000 gw .text._ZN15hb_atomic_int_t11set_relaxedEi 0000 41 __ZN15hb_atomic_int_t11set_relaxedEi
00000000 gw .text._ZNK15hb_atomic_int_t11get_relaxedEv 0000 41 __ZNK15hb_atomic_int_t11get_relaxedEv
00000000 gw .text._ZN15hb_atomic_int_t3incEv 0000 41 __ZN15hb_atomic_int_t3incEv
00000000 gw .text._ZN15hb_atomic_int_t3decEv 0000 41 __ZN15hb_atomic_int_t3decEv
00000000 gw .text._ZN20hb_reference_count_t4initEi 0000 41 __ZN20hb_reference_count_t4initEi
00000000 gw .text._ZNK20hb_reference_count_t11get_relaxedEv 0000 41 __ZNK20hb_reference_count_t11get_relaxedEv
00000000 gw .text._ZNK20hb_reference_count_t3incEv 0000 41 __ZNK20hb_reference_count_t3incEv
00000000 gw .text._ZNK20hb_reference_count_t3decEv 0000 41 __ZNK20hb_reference_count_t3decEv
00000000 gw .text._ZN20hb_reference_count_t4finiEv 0000 41 __ZN20hb_reference_count_t4finiEv
00000000 gw .text._ZNK20hb_user_data_array_t19hb_user_data_item_teqEPK18hb_user_data_key_t 0000 41 __ZNK20hb_user_data_array_t19hb_user_data_item_teqEPK18hb_user_data_key_t
00000000 gw .text._ZNK20hb_user_data_array_t19hb_user_data_item_teqERKS0_ 0000 41 __ZNK20hb_user_data_array_t19hb_user_data_item_teqERKS0_
00000000 gw .text._ZN20hb_user_data_array_t19hb_user_data_item_t4finiEv 0000 41 __ZN20hb_user_data_array_t19hb_user_data_item_t4finiEv
00000000 gw .text._ZN20hb_user_data_array_t4initEv 0000 41 __ZN20hb_user_data_array_t4initEv
00000000 gw .text._ZN20hb_user_data_array_t4finiEv 0000 41 __ZN20hb_user_data_array_t4finiEv
00000000 gw .text._ZN20hb_user_data_array_t3setEP18hb_user_data_key_tPvPFvS2_Ei 0000 41 __ZN20hb_user_data_array_t3setEP18hb_user_data_key_tPvPFvS2_Ei
00000000 gw .text._ZN20hb_user_data_array_t3getEP18hb_user_data_key_t 0000 41 __ZN20hb_user_data_array_t3getEP18hb_user_data_key_t
00000000 gw .text._ZNK18hb_object_header_t8is_inertEv 0000 41 __ZNK18hb_object_header_t8is_inertEv
00000000 gw .text._ZN18hb_unicode_funcs_t6scriptEj 0000 41 __ZN18hb_unicode_funcs_t6scriptEj
00000000 gw .text._ZN11hb_buffer_t18deallocate_var_allEv 0000 41 __ZN11hb_buffer_t18deallocate_var_allEv
00000000 gw .text._ZN9hb_iter_tI10hb_array_tI15hb_glyph_info_tERS1_EC2Ev 0000 41 __ZN9hb_iter_tI10hb_array_tI15hb_glyph_info_tERS1_EC2Ev
00000000 gw .text._ZN24hb_iter_fallback_mixin_tI10hb_array_tI15hb_glyph_info_tERS1_EC2Ev 0000 41 __ZN24hb_iter_fallback_mixin_tI10hb_array_tI15hb_glyph_info_tERS1_EC2Ev
00000000 gw .text._ZN23hb_iter_with_fallback_tI10hb_array_tI15hb_glyph_info_tERS1_EC2Ev 0000 41 __ZN23hb_iter_with_fallback_tI10hb_array_tI15hb_glyph_info_tERS1_EC2Ev
00000000 gw .text._ZN10hb_array_tI15hb_glyph_info_tEC1EPS0_j 0000 41 __ZN10hb_array_tI15hb_glyph_info_tEC1EPS0_j
00000000 gw .text._ZN9hb_iter_tI10hb_array_tI19hb_glyph_position_tERS1_EC2Ev 0000 41 __ZN9hb_iter_tI10hb_array_tI19hb_glyph_position_tERS1_EC2Ev
00000000 gw .text._ZN24hb_iter_fallback_mixin_tI10hb_array_tI19hb_glyph_position_tERS1_EC2Ev 0000 41 __ZN24hb_iter_fallback_mixin_tI10hb_array_tI19hb_glyph_position_tERS1_EC2Ev
00000000 gw .text._ZN23hb_iter_with_fallback_tI10hb_array_tI19hb_glyph_position_tERS1_EC2Ev 0000 41 __ZN23hb_iter_with_fallback_tI10hb_array_tI19hb_glyph_position_tERS1_EC2Ev
00000000 gw .text._ZN10hb_array_tI19hb_glyph_position_tEC1EPS0_j 0000 41 __ZN10hb_array_tI19hb_glyph_position_tEC1EPS0_j
00000000 gw .text._ZN11hb_buffer_t13reverse_rangeEjj 0000 41 __ZN11hb_buffer_t13reverse_rangeEjj
00000000 gw .text._ZN11hb_buffer_t7reverseEv 0000 41 __ZN11hb_buffer_t7reverseEv
00000000 gw .text._ZN11hb_buffer_t19_cluster_group_funcERK15hb_glyph_info_tS2_ 0000 41 __ZN11hb_buffer_t19_cluster_group_funcERK15hb_glyph_info_tS2_
00000000 gw .text._ZN11hb_buffer_t16reverse_clustersEv 0000 41 __ZN11hb_buffer_t16reverse_clustersEv
00000000 *UND* 0001 81 _memmove
00000000 gw .text._ZN11hb_buffer_t11next_glyphsEj 0000 41 __ZN11hb_buffer_t11next_glyphsEj
00000000 gw .text._ZN11hb_buffer_t10skip_glyphEv 0000 41 __ZN11hb_buffer_t10skip_glyphEv
00000000 gw .text._ZN11hb_buffer_t14merge_clustersEjj 0000 41 __ZN11hb_buffer_t14merge_clustersEjj
00000000 gw .text._ZN11hb_buffer_t16_set_glyph_flagsEjjjbb 0000 41 __ZN11hb_buffer_t16_set_glyph_flagsEjjjbb
00000000 gw .text._ZN11hb_buffer_t15unsafe_to_breakEjj 0000 41 __ZN11hb_buffer_t15unsafe_to_breakEjj
00000000 gw .text._ZN11hb_buffer_t6ensureEj 0000 41 __ZN11hb_buffer_t6ensureEj
00000000 gw .text._ZN11hb_buffer_t13assert_glyphsEv 0000 41 __ZN11hb_buffer_t13assert_glyphsEv
00000000 gw .text._ZN11hb_buffer_t14assert_unicodeEv 0000 41 __ZN11hb_buffer_t14assert_unicodeEv
00000000 gw .text._ZN11hb_buffer_t13clear_contextEj 0000 41 __ZN11hb_buffer_t13clear_contextEj
00000000 gw .text._ZN11hb_buffer_t11set_clusterER15hb_glyph_info_tjj 0000 41 __ZN11hb_buffer_t11set_clusterER15hb_glyph_info_tjj
00000000 gw .text._ZN11hb_buffer_t22_infos_set_glyph_flagsEP15hb_glyph_info_tjjjj 0000 41 __ZN11hb_buffer_t22_infos_set_glyph_flagsEP15hb_glyph_info_tjjjj
00000000 gw .text._ZN11hb_buffer_t23_infos_find_min_clusterEPK15hb_glyph_info_tjjj 0000 41 __ZN11hb_buffer_t23_infos_find_min_clusterEPK15hb_glyph_info_tjjj
00000000 gw .text._ZN4NullI11hb_buffer_tE8get_nullEv 0000 41 __ZN4NullI11hb_buffer_tE8get_nullEv
00000000 gw .text._ZNK11hb_ot_map_t13feature_map_t3cmpEj 0000 41 __ZNK11hb_ot_map_t13feature_map_t3cmpEj
00000000 gw .text._ZNK12hb_bit_set_t10page_map_t3cmpERKS0_ 0000 41 __ZNK12hb_bit_set_t10page_map_t3cmpERKS0_
00000000 gw .text._ZNK12hb_bit_set_t10page_map_t3cmpEj 0000 41 __ZNK12hb_bit_set_t10page_map_t3cmpEj
00000000 gw .text._ZN9hb_utf8_t4nextEPKhS1_Pjj 0000 41 __ZN9hb_utf8_t4nextEPKhS1_Pjj
00000000 gw .text._ZN9hb_utf8_t4prevEPKhS1_Pjj 0000 41 __ZN9hb_utf8_t4prevEPKhS1_Pjj
00000000 *UND* 0001 81 _strlen
00000000 gw .text._ZN9hb_utf8_t6strlenEPKh 0000 41 __ZN9hb_utf8_t6strlenEPKh
00000000 gw .text._ZN11hb_latin1_t4nextEPKhS1_Pjj 0000 41 __ZN11hb_latin1_t4nextEPKhS1_Pjj
00000000 gw .text._ZN11hb_latin1_t4prevEPKhS1_Pjj 0000 41 __ZN11hb_latin1_t4prevEPKhS1_Pjj
00000000 gw .text._ZN11hb_latin1_t6strlenEPKh 0000 41 __ZN11hb_latin1_t6strlenEPKh
00000000 gw .text._ZN15hb_atomic_int_tC1Ev 0000 41 __ZN15hb_atomic_int_tC1Ev
00000000 gw .text._ZN15hb_atomic_ptr_tI20hb_user_data_array_tEC1Ev 0000 41 __ZN15hb_atomic_ptr_tI20hb_user_data_array_tEC1Ev
00000000 gw .text._ZN17hb_lockable_set_tIN20hb_user_data_array_t19hb_user_data_item_tE10hb_mutex_tE4initEv 0000 41 __ZN17hb_lockable_set_tIN20hb_user_data_array_t19hb_user_data_item_tE10hb_mutex_tE4initEv
00000000 gw .text._ZN17hb_lockable_set_tIN20hb_user_data_array_t19hb_user_data_item_tE10hb_mutex_tE4finiERS2_ 0000 41 __ZN17hb_lockable_set_tIN20hb_user_data_array_t19hb_user_data_item_tE10hb_mutex_tE4finiERS2_
00000000 gw .text._ZSt4moveIRN20hb_user_data_array_t19hb_user_data_item_tEEONSt16remove_referenceIT_E4typeEOS4_ 0000 41 __ZSt4moveIRN20hb_user_data_array_t19hb_user_data_item_tEEONSt16remove_referenceIT_E4typeEOS4_
00000000 gw .text._ZN17hb_lockable_set_tIN20hb_user_data_array_t19hb_user_data_item_tE10hb_mutex_tE6removeIP18hb_user_data_key_tEEvT_RS2_ 0000 41 __ZN17hb_lockable_set_tIN20hb_user_data_array_t19hb_user_data_item_tE10hb_mutex_tE6removeIP18hb_user_data_key_tEEvT_RS2_
00000000 gw .text._ZN17hb_lockable_set_tIN20hb_user_data_array_t19hb_user_data_item_tE10hb_mutex_tE17replace_or_insertIS1_EEPS1_T_RS2_b 0000 41 __ZN17hb_lockable_set_tIN20hb_user_data_array_t19hb_user_data_item_tE10hb_mutex_tE17replace_or_insertIS1_EEPS1_T_RS2_b
00000000 gw .text._ZN17hb_lockable_set_tIN20hb_user_data_array_t19hb_user_data_item_tE10hb_mutex_tE4findIP18hb_user_data_key_tEEbT_PS1_RS2_ 0000 41 __ZN17hb_lockable_set_tIN20hb_user_data_array_t19hb_user_data_item_tE10hb_mutex_tE4findIP18hb_user_data_key_tEEbT_PS1_RS2_
00000000 gw .text._ZN10hb_array_tI15hb_glyph_info_tE7reverseEjj 0000 41 __ZN10hb_array_tI15hb_glyph_info_tE7reverseEjj
00000000 gw .text._ZN10hb_array_tI19hb_glyph_position_tE7reverseEjj 0000 41 __ZN10hb_array_tI19hb_glyph_position_tE7reverseEjj
00000000 gw .text._ZN11hb_buffer_t14reverse_groupsIFbRK15hb_glyph_info_tS3_EEEvRKT_b 0000 41 __ZN11hb_buffer_t14reverse_groupsIFbRK15hb_glyph_info_tS3_EEEvRKT_b
00000000 gw .text._ZN20hb_reference_count_tC1Ev 0000 41 __ZN20hb_reference_count_tC1Ev
00000000 gw .text._ZN18hb_object_header_tC1Ev 0000 41 __ZN18hb_object_header_tC1Ev
00000000 gw .text._ZN11hb_buffer_tC1Ev 0000 41 __ZN11hb_buffer_tC1Ev
00000000 gw .text._ZN10NullHelperI11hb_buffer_tE8get_nullEv 0000 41 __ZN10NullHelperI11hb_buffer_tE8get_nullEv
00000000 gw .text._ZNK11hb_buffer_t9group_endIFbRK15hb_glyph_info_tS3_EEEjjRKT_ 0000 41 __ZNK11hb_buffer_t9group_endIFbRK15hb_glyph_info_tS3_EEEjjRKT_
00000000 gw .text._ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE4initEv 0000 41 __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE4initEv
00000000 *UND* 0001 81 _free
00000000 gw .text._ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE4finiEv 0000 41 __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE4finiEv
00000000 gw .text._ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE4tailEv 0000 41 __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE4tailEv
00000000 gw .text._ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE3popEv 0000 41 __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE3popEv
00000000 gw .text._ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE7lsearchIP18hb_user_data_key_tEEPS1_RKT_S6_ 0000 41 __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE7lsearchIP18hb_user_data_key_tEEPS1_RKT_S6_
00000000 gw .text._ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE7lsearchIS1_EEPS1_RKT_S4_ 0000 41 __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE7lsearchIS1_EEPS1_RKT_S4_
00000000 gw .text._ZSt7forwardIRN20hb_user_data_array_t19hb_user_data_item_tEEOT_RNSt16remove_referenceIS3_E4typeE 0000 41 __ZSt7forwardIRN20hb_user_data_array_t19hb_user_data_item_tEEOT_RNSt16remove_referenceIS3_E4typeE
00000000 gw .text._ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE4pushIRS1_S1_LPv0EEEPS1_OT_ 0000 41 __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE4pushIRS1_S1_LPv0EEEPS1_OT_
00000000 gw .text._ZNK11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE8in_errorEv 0000 41 __ZNK11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE8in_errorEv
00000000 gw .text._ZNK15hb_atomic_ptr_tI20hb_user_data_array_tE11get_acquireEv 0000 41 __ZNK15hb_atomic_ptr_tI20hb_user_data_array_tE11get_acquireEv
00000000 gw .text._ZNK15hb_atomic_ptr_tI20hb_user_data_array_tE7cmpexchEPKS0_PS0_ 0000 41 __ZNK15hb_atomic_ptr_tI20hb_user_data_array_tE7cmpexchEPKS0_PS0_
00000000 gw .text._ZN13hb_utf16_xe_tItE6strlenEPKt 0000 41 __ZN13hb_utf16_xe_tItE6strlenEPKt
00000000 gw .text._ZN13hb_utf16_xe_tItE4prevEPKtS2_Pjj 0000 41 __ZN13hb_utf16_xe_tItE4prevEPKtS2_Pjj
00000000 gw .text._ZN13hb_utf16_xe_tItE4nextEPKtS2_Pjj 0000 41 __ZN13hb_utf16_xe_tItE4nextEPKtS2_Pjj
00000000 gw .text._ZN13hb_utf32_xe_tIjLb1EE6strlenEPKj 0000 41 __ZN13hb_utf32_xe_tIjLb1EE6strlenEPKj
00000000 gw .text._ZN13hb_utf32_xe_tIjLb1EE4prevEPKjS2_Pjj 0000 41 __ZN13hb_utf32_xe_tIjLb1EE4prevEPKjS2_Pjj
00000000 gw .text._ZN13hb_utf32_xe_tIjLb1EE4nextEPKjS2_Pjj 0000 41 __ZN13hb_utf32_xe_tIjLb1EE4nextEPKjS2_Pjj
00000000 gw .text._ZN13hb_utf32_xe_tIjLb0EE6strlenEPKj 0000 41 __ZN13hb_utf32_xe_tIjLb0EE6strlenEPKj
00000000 gw .text._ZN13hb_utf32_xe_tIjLb0EE4prevEPKjS2_Pjj 0000 41 __ZN13hb_utf32_xe_tIjLb0EE4prevEPKjS2_Pjj
00000000 gw .text._ZN13hb_utf32_xe_tIjLb0EE4nextEPKjS2_Pjj 0000 41 __ZN13hb_utf32_xe_tIjLb0EE4nextEPKjS2_Pjj
00000000 gw .text._ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE13shrink_vectorEj 0000 41 __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE13shrink_vectorEj
00000000 gw .text._ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EEixEi 0000 41 __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EEixEi
00000000 gw .text._ZN10NullHelperIN20hb_user_data_array_t19hb_user_data_item_tEE8get_nullEv 0000 41 __ZN10NullHelperIN20hb_user_data_array_t19hb_user_data_item_tEE8get_nullEv
00000000 gw .text._ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE8as_arrayEv 0000 41 __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE8as_arrayEv
00000000 gw .text._ZN10hb_array_tIN20hb_user_data_array_t19hb_user_data_item_tEE7lsearchIP18hb_user_data_key_tEEPS1_RKT_S6_ 0000 41 __ZN10hb_array_tIN20hb_user_data_array_t19hb_user_data_item_tEE7lsearchIP18hb_user_data_key_tEEPS1_RKT_S6_
00000000 gw .text._ZN10hb_array_tIN20hb_user_data_array_t19hb_user_data_item_tEE7lsearchIS1_EEPS1_RKT_S4_ 0000 41 __ZN10hb_array_tIN20hb_user_data_array_t19hb_user_data_item_tEE7lsearchIS1_EEPS1_RKT_S4_
00000000 gw .text._ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE5allocEjb 0000 41 __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE5allocEjb
00000000 gw .text._ZN10CrapHelperIN20hb_user_data_array_t19hb_user_data_item_tEE8get_crapEv 0000 41 __ZN10CrapHelperIN20hb_user_data_array_t19hb_user_data_item_tEE8get_crapEv
00000000 gw .text._ZSt9addressofIN20hb_user_data_array_t19hb_user_data_item_tEEPT_RS2_ 0000 41 __ZSt9addressofIN20hb_user_data_array_t19hb_user_data_item_tEEPT_RS2_
00000000 gw .text._ZSt4moveIR15hb_glyph_info_tEONSt16remove_referenceIT_E4typeEOS3_ 0000 41 __ZSt4moveIR15hb_glyph_info_tEONSt16remove_referenceIT_E4typeEOS3_
00000000 gw .text._ZSt4swapI15hb_glyph_info_tENSt9enable_ifIXsrSt6__and_IJSt21is_move_constructibleIT_ESt18is_move_assignableIS4_EEE5valueEvE4typeERS4_SB_ 0000 41 __ZSt4swapI15hb_glyph_info_tENSt9enable_ifIXsrSt6__and_IJSt21is_move_constructibleIT_ESt18is_move_assignableIS4_EEE5valueEvE4typeERS4_SB_
00000000 gw .text._ZSt4moveIR19hb_glyph_position_tEONSt16remove_referenceIT_E4typeEOS3_ 0000 41 __ZSt4moveIR19hb_glyph_position_tEONSt16remove_referenceIT_E4typeEOS3_
00000000 gw .text._ZSt4swapI19hb_glyph_position_tENSt9enable_ifIXsrSt6__and_IJSt21is_move_constructibleIT_ESt18is_move_assignableIS4_EEE5valueEvE4typeERS4_SB_ 0000 41 __ZSt4swapI19hb_glyph_position_tENSt9enable_ifIXsrSt6__and_IJSt21is_move_constructibleIT_ESt18is_move_assignableIS4_EEE5valueEvE4typeERS4_SB_
00000000 gw .text._ZN15hb_atomic_ptr_tI20hb_user_data_array_tE11set_relaxedEPS0_ 0000 41 __ZN15hb_atomic_ptr_tI20hb_user_data_array_tE11set_relaxedEPS0_
00000000 gw .text._ZN15hb_atomic_ptr_tI20hb_user_data_array_tE4initEPS0_ 0000 41 __ZN15hb_atomic_ptr_tI20hb_user_data_array_tE4initEPS0_
00000000 *UND* 0001 81 __hb_NullPool
00000000 gw .text._ZN4NullIN20hb_user_data_array_t19hb_user_data_item_tEE8get_nullEv 0000 41 __ZN4NullIN20hb_user_data_array_t19hb_user_data_item_tEE8get_nullEv
00000000 gw .text._ZN9hb_iter_tI10hb_array_tIN20hb_user_data_array_t19hb_user_data_item_tEERS2_EC2Ev 0000 41 __ZN9hb_iter_tI10hb_array_tIN20hb_user_data_array_t19hb_user_data_item_tEERS2_EC2Ev
00000000 gw .text._ZN24hb_iter_fallback_mixin_tI10hb_array_tIN20hb_user_data_array_t19hb_user_data_item_tEERS2_EC2Ev 0000 41 __ZN24hb_iter_fallback_mixin_tI10hb_array_tIN20hb_user_data_array_t19hb_user_data_item_tEERS2_EC2Ev
00000000 gw .text._ZN23hb_iter_with_fallback_tI10hb_array_tIN20hb_user_data_array_t19hb_user_data_item_tEERS2_EC2Ev 0000 41 __ZN23hb_iter_with_fallback_tI10hb_array_tIN20hb_user_data_array_t19hb_user_data_item_tEERS2_EC2Ev
00000000 gw .text._ZN10hb_array_tIN20hb_user_data_array_t19hb_user_data_item_tEEC1EPS1_j 0000 41 __ZN10hb_array_tIN20hb_user_data_array_t19hb_user_data_item_tEEC1EPS1_j
00000000 gw .text._Z8hb_arrayIN20hb_user_data_array_t19hb_user_data_item_tEE10hb_array_tIT_EPS3_j 0000 41 __Z8hb_arrayIN20hb_user_data_array_t19hb_user_data_item_tEE10hb_array_tIT_EPS3_j
00000000 gw .text._ZSt7forwardIRKP18hb_user_data_key_tEOT_RNSt16remove_referenceIS4_E4typeE 0000 41 __ZSt7forwardIRKP18hb_user_data_key_tEOT_RNSt16remove_referenceIS4_E4typeE
00000000 gw .text._ZNK10hb_array_tIN20hb_user_data_array_t19hb_user_data_item_tEE5lfindIP18hb_user_data_key_tEEbRKT_Pj14hb_not_found_tj 0000 41 __ZNK10hb_array_tIN20hb_user_data_array_t19hb_user_data_item_tEE5lfindIP18hb_user_data_key_tEEbRKT_Pj14hb_not_found_tj
00000000 gw .text._ZSt7forwardIRKN20hb_user_data_array_t19hb_user_data_item_tEEOT_RNSt16remove_referenceIS4_E4typeE 0000 41 __ZSt7forwardIRKN20hb_user_data_array_t19hb_user_data_item_tEEOT_RNSt16remove_referenceIS4_E4typeE
00000000 gw .text._ZNK10hb_array_tIN20hb_user_data_array_t19hb_user_data_item_tEE5lfindIS1_EEbRKT_Pj14hb_not_found_tj 0000 41 __ZNK10hb_array_tIN20hb_user_data_array_t19hb_user_data_item_tEE5lfindIS1_EEbRKT_Pj14hb_not_found_tj
00000000 gw .text._ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE9set_errorEv 0000 41 __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE9set_errorEv
00000000 *UND* 0001 81 _free
00000000 *UND* 0001 81 _realloc
00000000 gw .text._ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE14realloc_vectorIS1_LPv0EEEPS1_j11hb_priorityILj0EE 0000 41 __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE14realloc_vectorIS1_LPv0EEEPS1_j11hb_priorityILj0EE
00000000 gw .text._ZSt11__addressofIN20hb_user_data_array_t19hb_user_data_item_tEEPT_RS2_ 0000 41 __ZSt11__addressofIN20hb_user_data_array_t19hb_user_data_item_tEEPT_RS2_
00000000 gw .text._ZSt9addressofIKN20hb_user_data_array_t19hb_user_data_item_tEEPT_RS3_ 0000 41 __ZSt9addressofIKN20hb_user_data_array_t19hb_user_data_item_tEEPT_RS3_
00000000 gw .text._ZSt11__addressofIKN20hb_user_data_array_t19hb_user_data_item_tEEPT_RS3_ 0000 41 __ZSt11__addressofIKN20hb_user_data_array_t19hb_user_data_item_tEEPT_RS3_
00000000 l .data.__EH_FRAME_OBJECT__ 0000 21 __EH_FRAME_OBJECT__
Sections that are reported as duplicate, e.g. .text._ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE5allocEjb
(see my original post) are only there once AFAICS?!
Now use m68k-amigaos-objdump -d hb.buffer.o | less
and search for the mentioned function: _ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE5allocEjb
.
Paste the content up to the rts
here. Then do the same for a different object file where the linker also complains.
Ok, here we go, this is the function from hb-buffer.o:
Disassembly of section .text._ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE5allocEjb:
00000000 00000000 __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE5allocEjb:
0: 4e55 fff4 link.w a5,#-12
4: 2f02 move.l d2,-(sp)
6: 202d 0010 move.l 16(a5),d0
a: 1b40 fff4 move.b d0,-12(a5)
e: 2f2d 0008 move.l 8(a5),-(sp)
12: 4eb9 0000 0000 jsr 0 0 __ZNK11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE8in_errorEv
18: 588f addq.l #4,sp
1a: 4a00 tst.b d0
1c: 6706 beq.s 24 24 __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE5allocEjb+0x24
1e: 4200 clr.b d0
20: 6000 014e bra.w 170 170 __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE5allocEjb+0x170
24: 4a2d fff4 tst.b -12(a5)
28: 6754 beq.s 7e 7e __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE5allocEjb+0x7e
2a: 202d 0008 move.l 8(a5),d0
2e: 5880 addq.l #4,d0
30: 2f00 move.l d0,-(sp)
32: 41ed 000c lea 12(a5),a0
36: 2f08 move.l a0,-(sp)
38: 4879 0000 000f pea f f __ZL6hb_max
3e: 4eb9 0000 2d3e jsr 2d3e 2d3e __ZNK4._96clIRjS1_EEDTqugefp_fp0_fp_fp0_EOT_OT0_
44: 4fef 000c lea 12(sp),sp
48: 2040 movea.l d0,a0
4a: 2010 move.l (a0),d0
4c: 2b40 000c move.l d0,12(a5)
50: 206d 0008 movea.l 8(a5),a0
54: 2010 move.l (a0),d0
56: 2200 move.l d0,d1
58: 202d 000c move.l 12(a5),d0
5c: b081 cmp.l d1,d0
5e: 6216 bhi.s 76 76 __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE5allocEjb+0x76
60: 206d 0008 movea.l 8(a5),a0
64: 2010 move.l (a0),d0
66: e488 lsr.l #2,d0
68: 222d 000c move.l 12(a5),d1
6c: b280 cmp.l d0,d1
6e: 6506 bcs.s 76 76 __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE5allocEjb+0x76
70: 7001 moveq #1,d0
72: 6000 00fc bra.w 170 170 __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE5allocEjb+0x170
76: 2b6d 000c fffc move.l 12(a5),-4(a5)
7c: 603e bra.s bc bc __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE5allocEjb+0xbc
7e: 206d 0008 movea.l 8(a5),a0
82: 2010 move.l (a0),d0
84: 2200 move.l d0,d1
86: 202d 000c move.l 12(a5),d0
8a: b081 cmp.l d1,d0
8c: 6206 bhi.s 94 94 __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE5allocEjb+0x94
8e: 7001 moveq #1,d0
90: 6000 00de bra.w 170 170 __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE5allocEjb+0x170
94: 206d 0008 movea.l 8(a5),a0
98: 2010 move.l (a0),d0
9a: 2b40 fffc move.l d0,-4(a5)
9e: 202d 000c move.l 12(a5),d0
a2: b0ad fffc cmp.l -4(a5),d0
a6: 6314 bls.s bc bc __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE5allocEjb+0xbc
a8: 202d fffc move.l -4(a5),d0
ac: e288 lsr.l #1,d0
ae: d0ad fffc add.l -4(a5),d0
b2: 2200 move.l d0,d1
b4: 5081 addq.l #8,d1
b6: 2b41 fffc move.l d1,-4(a5)
ba: 60e2 bra.s 9e 9e __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE5allocEjb+0x9e
bc: 2f2d 0008 move.l 8(a5),-(sp)
c0: 4eb9 0000 0000 jsr 0 0 __ZNK11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE8in_errorEv
c6: 588f addq.l #4,sp
c8: 4a00 tst.b d0
ca: 6622 bne.s ee ee __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE5allocEjb+0xee
cc: 202d 000c move.l 12(a5),d0
d0: b0ad fffc cmp.l -4(a5),d0
d4: 6218 bhi.s ee ee __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE5allocEjb+0xee
d6: 42a7 clr.l -(sp)
d8: 4878 000c pea c c __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE5allocEjb+0xc
dc: 2f2d fffc move.l -4(a5),-(sp)
e0: 4eb9 0000 0066 jsr 66 66 __ZL25hb_unsigned_mul_overflowsjjPj
e6: 4fef 000c lea 12(sp),sp
ea: 4a00 tst.b d0
ec: 6704 beq.s f2 f2 __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE5allocEjb+0xf2
ee: 7001 moveq #1,d0
f0: 6002 bra.s f4 f4 __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE5allocEjb+0xf4
f2: 4200 clr.b d0
f4: 1b40 fff6 move.b d0,-10(a5)
f8: 102d fff6 move.b -10(a5),d0
fc: 4a00 tst.b d0
fe: 6710 beq.s 110 110 __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE5allocEjb+0x110
100: 2f2d 0008 move.l 8(a5),-(sp)
104: 4eb9 0000 0000 jsr 0 0 __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE9set_errorEv
10a: 588f addq.l #4,sp
10c: 4200 clr.b d0
10e: 6060 bra.s 170 170 __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE5allocEjb+0x170
110: 558f subq.l #2,sp
112: 1f42 0001 move.b d2,1(sp)
116: 558f subq.l #2,sp
118: 2f2d fffc move.l -4(a5),-(sp)
11c: 2f2d 0008 move.l 8(a5),-(sp)
120: 4eb9 0000 0000 jsr 0 0 __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE14realloc_vectorIS1_LPv0EEEPS1_j11hb_priorityILj0EE
126: 4fef 000c lea 12(sp),sp
12a: 2b40 fff8 move.l d0,-8(a5)
12e: 4aad fffc tst.l -4(a5)
132: 6726 beq.s 15a 15a __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE5allocEjb+0x15a
134: 4aad fff8 tst.l -8(a5)
138: 6620 bne.s 15a 15a __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE5allocEjb+0x15a
13a: 206d 0008 movea.l 8(a5),a0
13e: 2010 move.l (a0),d0
140: b0ad fffc cmp.l -4(a5),d0
144: 6504 bcs.s 14a 14a __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE5allocEjb+0x14a
146: 7001 moveq #1,d0
148: 6026 bra.s 170 170 __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE5allocEjb+0x170
14a: 2f2d 0008 move.l 8(a5),-(sp)
14e: 4eb9 0000 0000 jsr 0 0 __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE9set_errorEv
154: 588f addq.l #4,sp
156: 4200 clr.b d0
158: 6016 bra.s 170 170 __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE5allocEjb+0x170
15a: 206d 0008 movea.l 8(a5),a0
15e: 216d fff8 0008 move.l -8(a5),8(a0)
164: 202d fffc move.l -4(a5),d0
168: 206d 0008 movea.l 8(a5),a0
16c: 2080 move.l d0,(a0)
16e: 7001 moveq #1,d0
170: 242d fff0 move.l -16(a5),d2
174: 4e5d unlk a5
176: 4e75 rts
And there is the function from hb-font.o:
Disassembly of section .text._ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE5allocEjb:
00000000 00000000 __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE5allocEjb:
0: 4e55 fff4 link.w a5,#-12
4: 2f02 move.l d2,-(sp)
6: 202d 0010 move.l 16(a5),d0
a: 1b40 fff4 move.b d0,-12(a5)
e: 2f2d 0008 move.l 8(a5),-(sp)
12: 4eb9 0000 0000 jsr 0 0 __ZNK11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE8in_errorEv
18: 588f addq.l #4,sp
1a: 4a00 tst.b d0
1c: 6706 beq.s 24 24 __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE5allocEjb+0x24
1e: 4200 clr.b d0
20: 6000 014e bra.w 170 170 __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE5allocEjb+0x170
24: 4a2d fff4 tst.b -12(a5)
28: 6754 beq.s 7e 7e __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE5allocEjb+0x7e
2a: 202d 0008 move.l 8(a5),d0
2e: 5880 addq.l #4,d0
30: 2f00 move.l d0,-(sp)
32: 41ed 000c lea 12(a5),a0
36: 2f08 move.l a0,-(sp)
38: 4879 0000 000f pea f f __ZL6hb_max
3e: 4eb9 0000 5242 jsr 5242 5242 __ZNK4._96clIRjS1_EEDTqugefp_fp0_fp_fp0_EOT_OT0_
44: 4fef 000c lea 12(sp),sp
48: 2040 movea.l d0,a0
4a: 2010 move.l (a0),d0
4c: 2b40 000c move.l d0,12(a5)
50: 206d 0008 movea.l 8(a5),a0
54: 2010 move.l (a0),d0
56: 2200 move.l d0,d1
58: 202d 000c move.l 12(a5),d0
5c: b081 cmp.l d1,d0
5e: 6216 bhi.s 76 76 __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE5allocEjb+0x76
60: 206d 0008 movea.l 8(a5),a0
64: 2010 move.l (a0),d0
66: e488 lsr.l #2,d0
68: 222d 000c move.l 12(a5),d1
6c: b280 cmp.l d0,d1
6e: 6506 bcs.s 76 76 __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE5allocEjb+0x76
70: 7001 moveq #1,d0
72: 6000 00fc bra.w 170 170 __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE5allocEjb+0x170
76: 2b6d 000c fffc move.l 12(a5),-4(a5)
7c: 603e bra.s bc bc __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE5allocEjb+0xbc
7e: 206d 0008 movea.l 8(a5),a0
82: 2010 move.l (a0),d0
84: 2200 move.l d0,d1
86: 202d 000c move.l 12(a5),d0
8a: b081 cmp.l d1,d0
8c: 6206 bhi.s 94 94 __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE5allocEjb+0x94
8e: 7001 moveq #1,d0
90: 6000 00de bra.w 170 170 __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE5allocEjb+0x170
94: 206d 0008 movea.l 8(a5),a0
98: 2010 move.l (a0),d0
9a: 2b40 fffc move.l d0,-4(a5)
9e: 202d 000c move.l 12(a5),d0
a2: b0ad fffc cmp.l -4(a5),d0
a6: 6314 bls.s bc bc __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE5allocEjb+0xbc
a8: 202d fffc move.l -4(a5),d0
ac: e288 lsr.l #1,d0
ae: d0ad fffc add.l -4(a5),d0
b2: 2200 move.l d0,d1
b4: 5081 addq.l #8,d1
b6: 2b41 fffc move.l d1,-4(a5)
ba: 60e2 bra.s 9e 9e __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE5allocEjb+0x9e
bc: 2f2d 0008 move.l 8(a5),-(sp)
c0: 4eb9 0000 0000 jsr 0 0 __ZNK11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE8in_errorEv
c6: 588f addq.l #4,sp
c8: 4a00 tst.b d0
ca: 6622 bne.s ee ee __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE5allocEjb+0xee
cc: 202d 000c move.l 12(a5),d0
d0: b0ad fffc cmp.l -4(a5),d0
d4: 6218 bhi.s ee ee __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE5allocEjb+0xee
d6: 42a7 clr.l -(sp)
d8: 4878 000c pea c c __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE5allocEjb+0xc
dc: 2f2d fffc move.l -4(a5),-(sp)
e0: 4eb9 0000 008a jsr 8a 8a __ZL25hb_unsigned_mul_overflowsjjPj
e6: 4fef 000c lea 12(sp),sp
ea: 4a00 tst.b d0
ec: 6704 beq.s f2 f2 __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE5allocEjb+0xf2
ee: 7001 moveq #1,d0
f0: 6002 bra.s f4 f4 __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE5allocEjb+0xf4
f2: 4200 clr.b d0
f4: 1b40 fff6 move.b d0,-10(a5)
f8: 102d fff6 move.b -10(a5),d0
fc: 4a00 tst.b d0
fe: 6710 beq.s 110 110 __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE5allocEjb+0x110
100: 2f2d 0008 move.l 8(a5),-(sp)
104: 4eb9 0000 0000 jsr 0 0 __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE9set_errorEv
10a: 588f addq.l #4,sp
10c: 4200 clr.b d0
10e: 6060 bra.s 170 170 __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE5allocEjb+0x170
110: 558f subq.l #2,sp
112: 1f42 0001 move.b d2,1(sp)
116: 558f subq.l #2,sp
118: 2f2d fffc move.l -4(a5),-(sp)
11c: 2f2d 0008 move.l 8(a5),-(sp)
120: 4eb9 0000 0000 jsr 0 0 __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE14realloc_vectorIS1_LPv0EEEPS1_j11hb_priorityILj0EE
126: 4fef 000c lea 12(sp),sp
12a: 2b40 fff8 move.l d0,-8(a5)
12e: 4aad fffc tst.l -4(a5)
132: 6726 beq.s 15a 15a __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE5allocEjb+0x15a
134: 4aad fff8 tst.l -8(a5)
138: 6620 bne.s 15a 15a __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE5allocEjb+0x15a
13a: 206d 0008 movea.l 8(a5),a0
13e: 2010 move.l (a0),d0
140: b0ad fffc cmp.l -4(a5),d0
144: 6504 bcs.s 14a 14a __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE5allocEjb+0x14a
146: 7001 moveq #1,d0
148: 6026 bra.s 170 170 __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE5allocEjb+0x170
14a: 2f2d 0008 move.l 8(a5),-(sp)
14e: 4eb9 0000 0000 jsr 0 0 __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE9set_errorEv
154: 588f addq.l #4,sp
156: 4200 clr.b d0
158: 6016 bra.s 170 170 __ZN11hb_vector_tIN20hb_user_data_array_t19hb_user_data_item_tELb0EE5allocEjb+0x170
15a: 206d 0008 movea.l 8(a5),a0
15e: 216d fff8 0008 move.l -8(a5),8(a0)
164: 202d fffc move.l -4(a5),d0
168: 206d 0008 movea.l 8(a5),a0
16c: 2080 move.l d0,(a0)
16e: 7001 moveq #1,d0
170: 242d fff0 move.l -16(a5),d2
174: 4e5d unlk a5
176: 4e75 rts
3e: 4eb9 0000 2d3e jsr 2d3e 2d3e __ZNK4._96clIRjS1_EEDTqugefp_fp0_fp_fp0_EOT_OT0_
vs
3e: 4eb9 0000 5242 jsr 5242 5242 __ZNK4._96clIRjS1_EEDTqugefp_fp0_fp_fp0_EOT_OT0_
Yes, I saw that. But what can I do about this? I don't think this is a problem in the code. The same code compiles and links fine on many different platforms including your amiga-gcc from 2017 which I was using previously. So I think this is a compiler problem and not a problem in the code!?
Then you can ignore that message. It still creates the desired output
And I'd expect
4eb9 0000 0000
instead of
4eb9 0000 5242
For all jsr calls. Then the sections would be identical too...
Then you can ignore that message. It still creates the desired output
True, didn't even notice that it still created a binary. But it's literally hundreds of those messages (563kb when redirected to a file) so it's spamming the whole command line. Don't you think that this should be fixed in gcc?
For all jsr calls. Then the sections would be identical too...
Yeah, but isn't that something that has to be fixed in the compiler? ;)
Then you can ignore that message. It still creates the desired output
True, didn't even notice that it still created a binary. But it's literally hundreds of those messages (563kb when redirected to a file) so it's spamming the whole command line. Don't you think that this should be fixed in gcc?
For all jsr calls. Then the sections would be identical too...
Yeah, but isn't that something that has to be fixed in the compiler? ;)
if, then in the gnu assembler... ... I'll might look into it, when I have time, but it is not that important ^^
maybe you could attach the assembler files (created with -S)? harfbuzz complains about missing mutex stuff...
nm, -DHB_NO_MT
did the trick
Did you compile libharfbuzz with the recent version?
A pretty recent version, 8.0.1. I'm using HB_NO_MT
as well so this can't be the cause. I'll prepare an archive with all my build files so you can take a look.
You've got mail.
When trying to build a C++ project with the latest gcc, I get hundreds of linking errors like this:
The same project builds just fine with the 2017 version of Bebbo's gcc which I was using previously. My build line looks like this:
m68k-amigaos-gcc -nostartfiles -m68020 -mcrt=clib2 -o mktool/os3gcc6/textastic.hwp mktool/os3gcc6/amigaentry.o mktool/os3gcc6/plugin.o mktool/os3gcc6/purefuncs.o mktool/os3gcc6/fontconfig.o mktool/os3gcc6/tex.o -L../MicroTeX-openmath-c14/mktool/os3gcc6 -L../Pangomonium/pango-1.50.14/mktool/os3gcc6 -L../Pangomonium/fontconfig-2.14.2/mktool/os3gcc6 -L../Pangomonium/expat-2.5.0/mktool/os3gcc6 -L../Pangomonium/harfbuzz-8.0.1/mktool/os3gcc6 -L../Pangomonium/fribidi-1.0.13/mktool/os3gcc6 -L../Pangomonium/freetype-2.13.1/mktool/os3gcc6 -L../Pangomonium/cairo-1.17.8/mktool/os3gcc6 -L../Pangomonium/pixman-0.42.2-noos3hack/mktool/os3gcc6 -L../Pangomonium/libpng-1.6.40/mktool/os3gcc6 -L../Pangomonium/zlib-1.2.13/mktool/os3gcc6 -L../Pangomonium/glib/mktool/os3gcc6 -L../Pangomonium/gobject/mktool/os3gcc6 -L../Pangomonium/gio/mktool/os3gcc6 -lmicrotex -lpango -lharfbuzz -lfribidi -lcairo -lfontconfig -lexpat -lfreetype -lpixman -lpng -lgio -lgobject -lglib -lz -lm -lstdc++ -lc
Any idea how to fix this?