#15056 closed bug (fixed)
Broken glibc on ARM since hrev53006
Reported by: | kallisti5 | Owned by: | nobody |
---|---|---|---|
Priority: | normal | Milestone: | R1/beta2 |
Component: | System/libroot.so | Version: | R1/Development |
Keywords: | ARM glibc | Cc: | |
Blocked By: | Blocking: | ||
Platform: | All |
Description
After hrev53006, glibc no longer builds on ARM resulting in the following error:
libsolv_bootstrap_source-0.3.0_haiku_20 14_12_22-1-source.hpkg does not have a cross-devel package defined!
This is due to some earlier build issues with the libroot.so
Attachments (1)
Change History (5)
by , 6 years ago
Attachment: | libroot-fix-arm.diff added |
---|
comment:1 by , 6 years ago
I've attached a partial fix.
Here is the current error it is throwing:
AddVariableToScript1 objects/haiku/arm/packaging/packages_build/bootstrap/hpkg_-haiku_cross_devel_sysroot_stage0_arm.hpkg/scripts/haiku.package-init-vars InitScript1 objects/haiku/arm/packaging/packages_build/bootstrap/hpkg_-haiku_cross_devel_sysroot_stage0_arm.hpkg/scripts/haiku.package-make-dirs CreateContainerMakeDirectoriesScript1 objects/haiku/arm/packaging/packages_build/bootstrap/hpkg_-haiku_cross_devel_sysroot_stage0_arm.hpkg/scripts/haiku.package-make-dirs InitScript1 objects/haiku/arm/packaging/packages_build/bootstrap/hpkg_-haiku_cross_devel_sysroot_stage0_arm.hpkg/scripts/haiku.package-copy-files AppendToContainerCopyFilesScript <hpkg_-haiku_cross_devel_sysroot_stage0_arm.hpkg>haiku.package-copy-files-dummy-develop/lib AddDirectoryToContainerCopyFilesScript <hpkg_-haiku_cross_devel_sysroot_stage0_arm.hpkg>develop/headers/config/-/<copy-directory-to-container>../src/haiku/headers/config AddDirectoryToContainerCopyFilesScript <hpkg_-haiku_cross_devel_sysroot_stage0_arm.hpkg>develop/headers/glibc/-/<copy-directory-to-container>../src/haiku/headers/glibc AddDirectoryToContainerCopyFilesScript <hpkg_-haiku_cross_devel_sysroot_stage0_arm.hpkg>develop/headers/os/-/<copy-directory-to-container>../src/haiku/headers/os AddDirectoryToContainerCopyFilesScript <hpkg_-haiku_cross_devel_sysroot_stage0_arm.hpkg>develop/headers/posix/-/<copy-directory-to-container>../src/haiku/headers/posix AddDirectoryToContainerCopyFilesScript <hpkg_-haiku_cross_devel_sysroot_stage0_arm.hpkg>develop/headers/bsd/-/<copy-directory-to-container>../src/haiku/headers/compatibility/bsd AddDirectoryToContainerCopyFilesScript <hpkg_-haiku_cross_devel_sysroot_stage0_arm.hpkg>develop/headers/gnu/-/<copy-directory-to-container>../src/haiku/headers/compatibility/gnu InitScript1 objects/haiku/arm/packaging/packages_build/bootstrap/hpkg_-haiku_cross_devel_sysroot_stage0_arm.hpkg/scripts/haiku.package-extract-files BuildHaikuPackage1 objects/haiku/arm/packaging/packages/haiku_cross_devel_sysroot_stage0_arm.hpkg haiku_cross_devel_sysroot_stage0_arm.hpkg: Removing and re-creating package contents dir ... haiku_cross_devel_sysroot_stage0_arm.hpkg: Collecting package contents ... haiku_cross_devel_sysroot_stage0_arm.hpkg: mimeset'ing package contents ... haiku_cross_devel_sysroot_stage0_arm.hpkg: Creating the package ... AppendToContainerCopyFilesScriptSingleFile <hpkg_-haiku_cross_devel_sysroot_arm.hpkg>haiku.package-copy-files-dummy-develop/lib-kernel.so Cc objects/haiku/arm/release/system/libroot/posix/glibc/arch/arm/s_signbitl.o ../src/haiku/src/system/libroot/posix/glibc/arch/generic/longdouble/128bit/s_signbitl.c:24:13: error: '_Float128' is not supported on this target __signbitl (_Float128 x) ^~~~~~~~~ ../src/haiku/src/system/libroot/posix/glibc/arch/generic/longdouble/128bit/s_signbitl.c:24:1: warning: no previous prototype for '__signbitl' [-Wmissing-prototypes] __signbitl (_Float128 x) ^~~~~~~~~~ /work/generated.arm/cross-tools-arm/bin/arm-unknown-haiku-gcc -O2 -Wall -Wno-multichar -Wpointer-arith -Wsign-compare -Wcast-align -Wmissing-prototypes -fno-strict-aliasing -fno-delete-null-pointer-checks -fno-builtin-fork -fno-builtin-vfork -march=armv7-a -mfloat-abi=hard -mapcs-frame -nostdinc -D_GNU_SOURCE -D_IEEE_LIBM -c "../src/haiku/src/system/libroot/posix/glibc/arch/generic/longdouble/128bit/s_signbitl.c" -DARCH_arm -DBOOT_ARCHIVE_IMAGE_OFFSET=192 -D__HAIKU_PRIMARY_PACKAGING_ARCH=\"arm\" -DHAIKU_DISTRO_COMPATIBILITY_DEFAULT -DHAIKU_TARGET_PLATFORM_HAIKU -DHAIKU_BOOTSTRAP_BUILD -iquote ../src/haiku/build/user_config_headers -iquote ../src/haiku/build/config_headers -iquote ../src/haiku/src/system/libroot/posix/glibc/arch/arm -iquote objects/common/system/libroot/posix/glibc/arch/arm -iquote objects/linux/x86_64/common/system/libroot/posix/glibc/arch/arm -iquote objects/haiku/arm/common/system/libroot/posix/glibc/arch/arm -iquote ../src/haiku/src/system/libroot/posix/glibc/arch/generic -I ../src/haiku/src/system/libroot/posix/glibc/include/arch/arm -I ../src/haiku/src/system/libroot/posix/glibc/include/arch/generic -I ../src/haiku/src/system/libroot/posix/glibc/include -I ../src/haiku/src/system/libroot/posix/glibc/libio -I ../src/haiku/src/system/libroot/posix/glibc/stdlib -I ../src/haiku/src/system/libroot/posix/glibc/math -I ../src/haiku/src/system/libroot/posix/glibc -I ../src/haiku/headers/private/libroot -I build_packages/gcc_bootstrap_syslibs_devel-7.3.0_2018_05_01-1-arm/develop/headers/c++ -I build_packages/gcc_bootstrap_syslibs_devel-7.3.0_2018_05_01-1-arm/develop/headers/c++/arm-unknown-haiku -I build_packages/gcc_bootstrap_syslibs_devel-7.3.0_2018_05_01-1-arm/develop/headers/c++/backward -I build_packages/gcc_bootstrap_syslibs_devel-7.3.0_2018_05_01-1-arm/develop/headers/c++/ext -I build_packages/gcc_bootstrap_syslibs_devel-7.3.0_2018_05_01-1-arm/develop/headers/gcc/include -I build_packages/gcc_bootstrap_syslibs_devel-7.3.0_2018_05_01-1-arm/develop/headers/gcc/include-fixed -I ../src/haiku/headers -I ../src/haiku/headers/posix -I ../src/haiku/headers/glibc -I ../src/haiku/headers/os -I ../src/haiku/headers/os/add-ons -I ../src/haiku/headers/os/add-ons/file_system -I ../src/haiku/headers/os/add-ons/graphics -I ../src/haiku/headers/os/add-ons/input_server -I ../src/haiku/headers/os/add-ons/registrar -I ../src/haiku/headers/os/add-ons/screen_saver -I ../src/haiku/headers/os/add-ons/tracker -I ../src/haiku/headers/os/app -I ../src/haiku/headers/os/device -I ../src/haiku/headers/os/drivers -I ../src/haiku/headers/os/game -I ../src/haiku/headers/os/codec -I ../src/haiku/headers/os/interface -I ../src/haiku/headers/os/kernel -I ../src/haiku/headers/os/locale -I ../src/haiku/headers/os/media -I ../src/haiku/headers/os/mail -I ../src/haiku/headers/os/midi -I ../src/haiku/headers/os/midi2 -I ../src/haiku/headers/os/net -I ../src/haiku/headers/os/storage -I ../src/haiku/headers/os/support -I ../src/haiku/headers/os/translation -I ../src/haiku/headers/private/. -o "objects/haiku/arm/release/system/libroot/posix/glibc/arch/arm/s_signbitl.o" ...failed Cc objects/haiku/arm/release/system/libroot/posix/glibc/arch/arm/s_signbitl.o ...
comment:2 by , 6 years ago
You are just using the wrong types for ARM I think. Both "long double" and "double" are 64bit on ARM, so the longdouble/128bit sources should not be used there.
You will need either an ARM specific implementation (in arch/arm) or a generic/longdouble/64bit if there is such a thing in upstream.
I have mentionned this in my commit with the changes (https://git.haiku-os.org/haiku/commit/src/system/libroot/posix/glibc?id=4b2da9c371d02367607d33358d88ac5996fb5ea0):
- Do not adjust arm jamfiles, it was wrongly using 80bit long double and should be fixed to use 64bit instead (which means the double functions can be used with aliases)
It seems the "128bit" directory is searched for ARM as well, but it shouldn't. I probably missed something? Despite being in the "generic" directory it should be used only for architectures that use this format for long double.
comment:4 by , 5 years ago
Milestone: | Unscheduled → R1/beta2 |
---|
Assign tickets with status=closed and resolution=fixed within the R1/beta2 development window to the R1/beta2 Milestone
partial fix