mold
mold copied to clipboard
Broken section `.eh_frame` is produced when merging object files with `mold -r`
/Haiku/data/packages/mold/ld -r objects/haiku/x86_64/release/kits/locale/cat.o objects/haiku/x86_64/release/kits/locale/Catalog.o objects/haiku/x86_64/release/kits/locale/CatalogData.o objects/haiku/x86_64/release/kits/locale/Collator.o objects/haiku/x86_64/release/kits/locale/Country.o objects/haiku/x86_64/release/kits/locale/DefaultCatalog.o objects/haiku/x86_64/release/kits/locale/EditableCatalog.o objects/haiku/x86_64/release/kits/locale/FormattingConventions.o objects/haiku/x86_64/release/kits/locale/HashMapCatalog.o objects/haiku/x86_64/release/kits/locale/InitLocaleKit.o objects/haiku/x86_64/release/kits/locale/Language.o objects/haiku/x86_64/release/kits/locale/Locale.o objects/haiku/x86_64/release/kits/locale/LocaleRoster.o objects/haiku/x86_64/release/kits/locale/LocaleRosterData.o objects/haiku/x86_64/release/kits/locale/MutableLocaleRoster.o objects/haiku/x86_64/release/kits/locale/TextEncoding.o objects/haiku/x86_64/release/kits/locale/TimeZone.o objects/haiku/x86_64/release/kits/locale/DateFormat.o objects/haiku/x86_64/release/kits/locale/DateTimeFormat.o objects/haiku/x86_64/release/kits/locale/DurationFormat.o objects/haiku/x86_64/release/kits/locale/NumberFormat.o objects/haiku/x86_64/release/kits/locale/StringFormat.o objects/haiku/x86_64/release/kits/locale/TimeFormat.o objects/haiku/x86_64/release/kits/locale/TimeUnitFormat.o objects/haiku/x86_64/release/kits/locale/Format.o objects/haiku/x86_64/release/kits/locale/UnicodeChar.o objects/haiku/x86_64/release/kits/locale/RelativeDateTimeFormat.o -o objects/haiku/x86_64/release/kits/locale/locale_kit.o
/Haiku/data/packages/haiku2/generated.x86_64/cross-tools-x86_64/bin/x86_64-unknown-haiku-gcc -B /Haiku/data/packages/mold -fno-strict-aliasing -fno-delete-null-pointer-checks -fno-builtin-fork -fno-builtin-vfork -Xlinker --no-undefined -Xlinker --Bsymbolic -shared -Xlinker -soname="libbe.so" -nostdlib -Xlinker --no-undefined -o "objects/haiku/x86_64/release/kits/libbe.so" "objects/haiku/x86_64/release/system/glue/arch/x86_64/crti.o" "/Haiku/data/packages/haiku2/generated.x86_64/cross-tools-x86_64/lib/gcc/x86_64-unknown-haiku/11.2.0/crtbeginS.o" "objects/haiku/x86_64/release/system/glue/init_term_dyn.o" \
> "objects/haiku/x86_64/release/kits/app/app_kit.o" "objects/haiku/x86_64/release/kits/interface/interface_kit.o" "objects/haiku/x86_64/release/kits/locale/locale_kit.o" "objects/haiku/x86_64/release/kits/storage/storage_kit.o" "objects/haiku/x86_64/release/kits/support/support_kit.o" "objects/haiku/x86_64/release/kits/storage/mime/libstorage_kit_mime.a" "objects/haiku/x86_64/release/libs/icon/libicon.a" "objects/haiku/x86_64/release/libs/agg/libagg.a" "build_packages/gcc_syslibs-11.2.0_2021_07_28-5-x86_64/lib/libstdc++.so" "build_packages/icu66-66.1-2-x86_64/develop/lib/libicudata.so" "build_packages/icu66-66.1-2-x86_64/develop/lib/libicui18n.so" "build_packages/icu66-66.1-2-x86_64/develop/lib/libicuio.so" "build_packages/icu66-66.1-2-x86_64/develop/lib/libicuuc.so" "build_packages/zlib-1.2.11-4-x86_64/develop/lib/libz.so" "build_packages/zstd-1.5.0-2-x86_64/develop/lib/libzstd.so" "objects/haiku/x86_64/release/system/libroot/libroot.so" "build_packages/gcc_syslibs-11.2.0_2021_07_28-5-x86_64/lib/libgcc_s.so.1" "build_packages/gcc_syslibs_devel-11.2.0_2021_07_28-5-x86_64/develop/lib/libgcc.a" "/Haiku/data/packages/haiku2/generated.x86_64/cross-tools-x86_64/lib/gcc/x86_64-unknown-haiku/11.2.0/crtendS.o" "objects/haiku/x86_64/release/system/glue/arch/x86_64/crtn.o" \
> -Wl,--version-script,../src/kits/libbe_versions
mold: fatal: objects/haiku/x86_64/release/kits/locale/locale_kit.o:(.eh_frame): FDE's first relocation should have offset 8
collect2: error: ld returned 1 exit status
Works fine when object files merged with GNU ld and executable is linked with mold.
Maybe related: https://github.com/rui314/mold/issues/289.
I believe it's fixed now.