Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Replace armeabi-v7a-hard in Android build #149

Open
kkimdev opened this issue May 31, 2017 · 6 comments
Open

Replace armeabi-v7a-hard in Android build #149

kkimdev opened this issue May 31, 2017 · 6 comments
Assignees
Labels

Comments

@kkimdev
Copy link

kkimdev commented May 31, 2017

That ABI is no longer supported https://android.googlesource.com/platform/ndk/+/353e653824b79c43b948429870d0abeedebde386/docs/HardFloatAbi.md

@kkimdev
Copy link
Author

kkimdev commented May 31, 2017

This issue made my Android build fail. Though I'm not sure if it's reproducible consistently or if there is another setting that triggers this.

$ ./fips config android-make-debug
=== dependency: 'oryol':
dir '/home/kkim/fips-projects/oryol' exists
=== dependency: 'fips-unittestpp':
dir '/home/kkim/fips-projects/fips-unittestpp' exists
=== dependency: 'fips-remotery':
dir '/home/kkim/fips-projects/fips-remotery' exists
=== dependency: 'fips-glm':
dir '/home/kkim/fips-projects/fips-glm' exists
=== dependency: 'fips-glfw':
dir '/home/kkim/fips-projects/fips-glfw' exists
=== dependency: 'gliml':
dir '/home/kkim/fips-projects/gliml' exists
=== dependency: 'fips-zlib':
dir '/home/kkim/fips-projects/fips-zlib' exists
=== dependency: 'fips-vld':
dir '/home/kkim/fips-projects/fips-vld' exists
=== dependency: 'fips-libcurl':
dir '/home/kkim/fips-projects/fips-libcurl' exists
=== configuring: android-make-debug
=== generating: android-make-debug
Using Toolchain File: /home/kkim/fips-projects/fips/cmake-toolchains/android.toolchain.cmake
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug -DCMAKE_TOOLCHAIN_FILE=/home/kkim/fips-projects/fips/cmake-toolchains/android.toolchain.cmake -DFIPS_CONFIG=android-make-debug -DANDROID_API="android-19" -DANDROID_CPU="arm" -DFIPS_USE_CCACHE=OFF -DFIPS_AUTO_IMPORT=ON -B/home/kkim/fips-projects/fips-build/m19g/android-make-debug -H/home/kkim/fips-projects/m19g
-- The C compiler identification is GNU 4.8.0
-- The CXX compiler identification is GNU 4.8.0
-- Check for working C compiler: /home/kkim/fips-projects/fips-sdks/linux/android-ndk-r9d/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc
-- Check for working C compiler: /home/kkim/fips-projects/fips-sdks/linux/android-ndk-r9d/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc -- broken
CMake Error at /usr/share/cmake-3.5/Modules/CMakeTestCCompiler.cmake:61 (message):
  The C compiler
  "/home/kkim/fips-projects/fips-sdks/linux/android-ndk-r9d/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc"
  is not able to compile a simple test program.

  It fails with the following output:

   Change Dir: /home/kkim/fips-projects/fips-build/m19g/android-make-debug/CMakeFiles/CMakeTmp

  

  Run Build Command:"/usr/bin/make" "cmTC_847ba/fast"

  /usr/bin/make -f CMakeFiles/cmTC_847ba.dir/build.make
  CMakeFiles/cmTC_847ba.dir/build

  make[1]: Entering directory
  '/home/kkim/fips-projects/fips-build/m19g/android-make-debug/CMakeFiles/CMakeTmp'


  Building C object CMakeFiles/cmTC_847ba.dir/testCCompiler.c.o

  
  /home/kkim/fips-projects/fips-sdks/linux/android-ndk-r9d/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc
  -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard -mthumb -mhard-float
  -D_NDK_MATH_NO_SOFTFP=1
  --sysroot=/home/kkim/fips-projects/fips-sdks/linux/android-ndk-r9d/platforms/android-19/arch-arm
  -fPIC -fno-strict-aliasing -ffunction-sections -funwind-tables
  -fstack-protector -no-canonical-prefixes -DANDROID -Wa,--noexecstack
  -Wformat -Werror=format-security -Wall -Wno-multichar -Wextra
  -Wno-unused-parameter -Wno-unknown-pragmas -Wno-ignored-qualifiers
  -Wno-long-long
  -I/home/kkim/fips-projects/fips-sdks/linux/android-ndk-r9d/android-19/arch-arm/usr/include
  -O0 -fno-omit-frame-pointer -g -D_DEBUG_ -D_DEBUG -DFIPS_DEBUG=1 -o
  CMakeFiles/cmTC_847ba.dir/testCCompiler.c.o -c
  /home/kkim/fips-projects/fips-build/m19g/android-make-debug/CMakeFiles/CMakeTmp/testCCompiler.c


  Linking C executable cmTC_847ba

  /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_847ba.dir/link.txt
  --verbose=1

  
  /home/kkim/fips-projects/fips-sdks/linux/android-ndk-r9d/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc
  -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard -mthumb -mhard-float
  -D_NDK_MATH_NO_SOFTFP=1
  --sysroot=/home/kkim/fips-projects/fips-sdks/linux/android-ndk-r9d/platforms/android-19/arch-arm
  -fPIC -fno-strict-aliasing -ffunction-sections -funwind-tables
  -fstack-protector -no-canonical-prefixes -DANDROID -Wa,--noexecstack
  -Wformat -Werror=format-security -Wall -Wno-multichar -Wextra
  -Wno-unused-parameter -Wno-unknown-pragmas -Wno-ignored-qualifiers
  -Wno-long-long
  -I/home/kkim/fips-projects/fips-sdks/linux/android-ndk-r9d/android-19/arch-arm/usr/include
  -O0 -fno-omit-frame-pointer -g -D_DEBUG_ -D_DEBUG -DFIPS_DEBUG=1
  CMakeFiles/cmTC_847ba.dir/testCCompiler.c.o -o cmTC_847ba -rdynamic
  -landroid -llog -lc -l -lgcc

  
  /home/kkim/fips-projects/fips-sdks/linux/android-ndk-r9d/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.8/../../../../arm-linux-androideabi/bin/ld:
  error: cannot find -l-lgcc

  
  /home/kkim/fips-projects/fips-sdks/linux/android-ndk-r9d/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.8/../../../../arm-linux-androideabi/bin/ld:
  error: CMakeFiles/cmTC_847ba.dir/testCCompiler.c.o uses VFP register
  arguments, output does not

  
  /home/kkim/fips-projects/fips-sdks/linux/android-ndk-r9d/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.8/../../../../arm-linux-androideabi/bin/ld:
  error:
  /home/kkim/fips-projects/fips-sdks/linux/android-ndk-r9d/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.8/armv7-a/thumb/hard/libgcc.a(unwind-arm.o)
  uses VFP register arguments, output does not

  
  /home/kkim/fips-projects/fips-sdks/linux/android-ndk-r9d/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.8/../../../../arm-linux-androideabi/bin/ld:
  error:
  /home/kkim/fips-projects/fips-sdks/linux/android-ndk-r9d/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.8/armv7-a/thumb/hard/libgcc.a(pr-support.o)
  uses VFP register arguments, output does not

  collect2: error: ld returned 1 exit status

  CMakeFiles/cmTC_847ba.dir/build.make:97: recipe for target 'cmTC_847ba'
  failed

  make[1]: *** [cmTC_847ba] Error 1

  make[1]: Leaving directory
  '/home/kkim/fips-projects/fips-build/m19g/android-make-debug/CMakeFiles/CMakeTmp'


  Makefile:126: recipe for target 'cmTC_847ba/fast' failed

  make: *** [cmTC_847ba/fast] Error 2

  

  

  CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
  CMakeLists.txt


-- Configuring incomplete, errors occurred!
See also "/home/kkim/fips-projects/fips-build/m19g/android-make-debug/CMakeFiles/CMakeOutput.log".
See also "/home/kkim/fips-projects/fips-build/m19g/android-make-debug/CMakeFiles/CMakeError.log".
[ERROR] Failed to generate 'android-make-debug' of project 'm19g'

@floooh
Copy link
Owner

floooh commented May 31, 2017

Can you try the following in the Oryol directory?

> ./fips clean
> ./fips set config android-make-debug
> ./fips gen
> ./fips build

This worked for me last time I tested (after I merging the new shader-pipeline stuff). If this works it might be a problem of ./fips config android-make-debug. Even if it works it makes sense of course to remove the Hard Float ABI (just as the text you linked says, I misunderstood its purpose, and assumed that this is the only way to get floating point instructions).

@floooh floooh added the bug label May 31, 2017
@floooh floooh self-assigned this May 31, 2017
@kkimdev
Copy link
Author

kkimdev commented May 31, 2017

Hmmm just tried and worked for oryol and also my test oryol app project, and it compiled successfully. I don't know what is the actual difference yet.

@floooh
Copy link
Owner

floooh commented May 31, 2017

Just to make sure, can you also try this:

> ./fips clean all
> ./fips config android-make-debug

This works for me (on OSX), but I remember having seen those compiler-check errors in the past too (it's basically cmake checking if the compiler works, and I'm not sure what compiler options cmake uses for this test).

Oh, and what cmake version are you running? (I'm on 3.8.1).

@kkimdev
Copy link
Author

kkimdev commented May 31, 2017

./fips clean all
./fips config android-make-debug

After the above, I got the same compiler error. Now, even if I do the following, I get the same error.

./fips clean
./fips set config android-make-debug
./fips gen

The cmake version is 3.5.1.

I guess my previous successful compile with my temporary workaround #150 somehow affected the compilation before ./fips clean all

@floooh
Copy link
Owner

floooh commented May 31, 2017

Hmm that's very strange, I cannot reproduce this. Here's what I did now:

  • delete all Android SDK stuff from fips-sdks
  • install new Android SDK with ./fips setup android
  • from the Oryol directory, ./fips clean all, and ./fips config android-make-debug

No problems, may be it's the installed cmake version?

Here's the console output I'm getting:

~/p/oryol ❯❯❯ ./fips config android-make-debug
=== dependency: 'fips-unittestpp':
dir '/Users/floh/projects/fips-unittestpp' exists
=== dependency: 'fips-remotery':
dir '/Users/floh/projects/fips-remotery' exists
=== dependency: 'fips-glm':
dir '/Users/floh/projects/fips-glm' exists
=== dependency: 'fips-glfw':
dir '/Users/floh/projects/fips-glfw' exists
=== dependency: 'gliml':
dir '/Users/floh/projects/gliml' exists
=== dependency: 'fips-zlib':
dir '/Users/floh/projects/fips-zlib' exists
=== dependency: 'fips-vld':
dir '/Users/floh/projects/fips-vld' exists
=== dependency: 'fips-libcurl':
dir '/Users/floh/projects/fips-libcurl' exists
=== configuring: android-make-debug
=== generating: android-make-debug
Using Toolchain File: /Users/floh/projects/fips/cmake-toolchains/android.toolchain.cmake
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug -DCMAKE_TOOLCHAIN_FILE=/Users/floh/projects/fips/cmake-toolchains/android.toolchain.cmake -DFIPS_CONFIG=android-make-debug -DANDROID_API="android-19" -DANDROID_CPU="arm" -DFIPS_USE_CCACHE=OFF -DFIPS_AUTO_IMPORT=ON -B/Users/floh/projects/fips-build/oryol/android-make-debug -H/Users/floh/projects/oryol
-- The C compiler identification is GNU 4.8.0
-- The CXX compiler identification is GNU 4.8.0
-- Check for working C compiler: /Users/floh/projects/fips-sdks/osx/android-ndk-r9d/toolchains/arm-linux-androideabi-4.8/prebuilt/darwin-x86_64/bin/arm-linux-androideabi-gcc
-- Check for working C compiler: /Users/floh/projects/fips-sdks/osx/android-ndk-r9d/toolchains/arm-linux-androideabi-4.8/prebuilt/darwin-x86_64/bin/arm-linux-androideabi-gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /Users/floh/projects/fips-sdks/osx/android-ndk-r9d/toolchains/arm-linux-androideabi-4.8/prebuilt/darwin-x86_64/bin/arm-linux-androideabi-g++
-- Check for working CXX compiler: /Users/floh/projects/fips-sdks/osx/android-ndk-r9d/toolchains/arm-linux-androideabi-4.8/prebuilt/darwin-x86_64/bin/arm-linux-androideabi-g++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
=== fips_setup(PROJECT oryol)
CMAKE_BUILD_TYPE: Debug
FIPS_ROOT_DIR: /Users/floh/projects/fips
FIPS_PROJECT_DIR: /Users/floh/projects/oryol
FIPS_BUILD_DIR: /Users/floh/projects/fips-build
FIPS_DEPLOY_DIR: /Users/floh/projects/fips-deploy
FIPS_AUTO_IMPORT: ON
Host system: OSX
CMAKE_CXX_COMPILER_ID: GNU
Detected C++ Compiler: GCC (FIPS_GCC)
FIPS_CONFIG: android-make-debug
FIPS_PROJECT_BUILD_DIR: /Users/floh/projects/fips-build/oryol/android-make-debug
FIPS_PROJECT_DEPLOY_DIR: /Users/floh/projects/fips-deploy/oryol/android-make-debug
FIPS_PLATFORM: ANDROID
FIPS_PLATFORM_NAME: android
=> create Android SDK project: Clear
=> create Android SDK project: Triangle
=> create Android SDK project: Quad
=> create Android SDK project: Shapes
=> create Android SDK project: PackedNormals
=> create Android SDK project: PrimitiveTypes
=> create Android SDK project: BlendTest
=> create Android SDK project: SeparateBuffers
=> create Android SDK project: SimpleRenderTarget
=> create Android SDK project: MultipleRenderTarget
=> create Android SDK project: RenderToCubeMap
=> create Android SDK project: InfiniteSpheres
=> create Android SDK project: TextureFloat
=> create Android SDK project: DrawCallPerf
=> create Android SDK project: Instancing
=> create Android SDK project: GPUParticles
=> create Android SDK project: FullscreenQuad
=> create Android SDK project: VertexTexture
=> create Android SDK project: VolumeTexture
=> create Android SDK project: ArrayTexture
=> create Android SDK project: DDSTextureLoading
=> create Android SDK project: DDSCubeMap
=> create Android SDK project: DebugText
=> create Android SDK project: TestInput
=> create Android SDK project: GamepadExplorer
=> create Android SDK project: NativeTexture
=> create Android SDK project: ResourceStress
=> create Android SDK project: CoreHello
=> create Android SDK project: Sensors
=> create Android SDK project: IOQueueSample
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/floh/projects/fips-build/oryol/android-make-debug

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants