Opened 5 years ago

Closed 5 years ago

Last modified 4 years ago

#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)

libroot-fix-arm.diff (2.9 KB ) - added by kallisti5 5 years ago.
partial fix

Download all attachments as: .zip

Change History (5)

by kallisti5, 5 years ago

Attachment: libroot-fix-arm.diff added

partial fix

comment:1 by kallisti5, 5 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 pulkomandy, 5 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:3 by waddlesplash, 5 years ago

Resolution: fixed
Status: newclosed

Fix was merged

comment:4 by nielx, 4 years ago

Milestone: UnscheduledR1/beta2

Assign tickets with status=closed and resolution=fixed within the R1/beta2 development window to the R1/beta2 Milestone

Note: See TracTickets for help on using tickets.