Closed
Description
Description
I'm trying a build a library with --ffreestanding flag on Android NDK r19c, and I'm getting use of undeclared identifier "LONG_BIT"
error.
I know that (from #352), --ffreestanding
is the cause but it's a requirement for the library.
In file included from C:\Users\hanseul.shin\Desktop\PremakeTest\tutorials\Engine\Tools\AndroidBuild\android-ndk-r19c\sources\android\cpufeatures\cpu-features.c:69:
In file included from C:\Users\hanseul.shin\Desktop\PremakeTest\tutorials/Engine/Tools/AndroidBuild/android-ndk-r19c\toolchains\llvm\prebuilt\windows-x86_64\sysroot\usr\include\pthread.h:37:
In file included from C:\Users\hanseul.shin\Desktop\PremakeTest\tutorials/Engine/Tools/AndroidBuild/android-ndk-r19c\toolchains\llvm\prebuilt\windows-x86_64\sysroot\usr\include\time.h:33:
In file included from C:\Users\hanseul.shin\Desktop\PremakeTest\tutorials/Engine/Tools/AndroidBuild/android-ndk-r19c\toolchains\llvm\prebuilt\windows-x86_64\sysroot\usr\include\sys/time.h:37:
In file included from C:\Users\hanseul.shin\Desktop\PremakeTest\tutorials/Engine/Tools/AndroidBuild/android-ndk-r19c\toolchains\llvm\prebuilt\windows-x86_64\sysroot\usr\include\sys/select.h:36:
In file included from C:\Users\hanseul.shin\Desktop\PremakeTest\tutorials/Engine/Tools/AndroidBuild/android-ndk-r19c\toolchains\llvm\prebuilt\windows-x86_64\sysroot\usr\include\signal.h:37:
C:\Users\hanseul.shin\Desktop\PremakeTest\tutorials/Engine/Tools/AndroidBuild/android-ndk-r19c\toolchains\llvm\prebuilt\windows-x86_64\sysroot\usr\include\bits/signal_types.h:65:53: error: use of undeclared identifier 'LONG_BIT'
typedef struct { unsigned long __bits[_KERNEL__NSIG/LONG_BIT]; } sigset64_t;
^
In file included from C:\Users\hanseul.shin\Desktop\PremakeTest\tutorials\Engine\Tools\AndroidBuild\android-ndk-r19c\sources\android\cpufeatures\cpu-features.c:69:
In file included from C:\Users\hanseul.shin\Desktop\PremakeTest\tutorials/Engine/Tools/AndroidBuild/android-ndk-r19c\toolchains\llvm\prebuilt\windows-x86_64\sysroot\usr\include\pthread.h:37:
In file included from C:\Users\hanseul.shin\Desktop\PremakeTest\tutorials/Engine/Tools/AndroidBuild/android-ndk-r19c\toolchains\llvm\prebuilt\windows-x86_64\sysroot\usr\include\time.h:33:
In file included from C:\Users\hanseul.shin\Desktop\PremakeTest\tutorials/Engine/Tools/AndroidBuild/android-ndk-r19c\toolchains\llvm\prebuilt\windows-x86_64\sysroot\usr\include\sys/time.h:37:
In file included from C:\Users\hanseul.shin\Desktop\PremakeTest\tutorials/Engine/Tools/AndroidBuild/android-ndk-r19c\toolchains\llvm\prebuilt\windows-x86_64\sysroot\usr\include\sys/select.h:36:
In file included from C:\Users\hanseul.shin\Desktop\PremakeTest\tutorials/Engine/Tools/AndroidBuild/android-ndk-r19c\toolchains\llvm\prebuilt\windows-x86_64\sysroot\usr\include\signal.h:203:
C:\Users\hanseul.shin\Desktop\PremakeTest\tutorials/Engine/Tools/AndroidBuild/android-ndk-r19c\toolchains\llvm\prebuilt\windows-x86_64\sysroot\usr\include\android/legacy_signal_inlines.h:71:33: error: use of undeclared identifier 'LONG_BIT'
return (int)((local_set[bit / LONG_BIT] >> (bit % LONG_BIT)) & 1);
.CFLAGS + -m32 -target $NDKToolchainArmTarget$ -march=armv7-a -mfloat-abi=softfp -mcpu=cortex-a9 -mfpu=neon-vfpv4'
+ ' -ffreestanding -fomit-frame-pointer'
.Librarian = '$NDKToolchainClangRoot$\$NDKToolchainArmType$-ar.exe'
.Linker = '$NDKToolchainClangLinker$'
.Strip = '$NDKToolchainClangRoot$\$NDKToolchainArmType$-strip.exe'
.ObjCopy = '$NDKToolchainClangRoot$\$NDKToolchainArmType$-objcopy.exe'
.LinkerSystemPaths = ' -Wl,--no-undefined -Wl,-z,noexecstack -Wl,-rpath-link=$NDKSysRoot$\usr\libs\$NDKToolchainArmType$\19'
+ ' -Wl,-z,relro -Wl,-z,now -Wl,--fix-cortex-a8'
+ '-target $NDKToolchainArmTarget$'
.IncludePaths + ' -I$NDKSysRoot$\usr\include\arm-linux-androideabi'
.LinkerSystemLibs + ' -lunwind'
I'm testing on API LEVEL = 19
and using llvm Clang toolchain
with the right target.
Environment Details
Not all of these will be relevant to every bug, but please provide as much
information as you can.
- NDK Version: r19c
- Build system: Premake/FastBuild
- Host OS: Windows
- NDK API level: 19 (try to test below 21)