Skip to content

[BUG] error: undefined reference to 'aligned_alloc' #1339

@tcamargo

Description

@tcamargo

Description

clang++ linking is failing since mame switched to aligned_alloc.

Linking mame_libretro_android.so...
/home/camargo/ndk/android-ndk-r21d/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -o ../../../../../mame_libretro_android.so ../../../../libretro/obj/libretro/src/mame/mame.o ../../../../libretro/obj/libretro/src/osd/libretro/libretro-internal/libretro.o ../../../../libretro/obj/libretro/src/osd/libretro/retromain.o ../../../../libretro/obj/libretro/generated/mame/mame/drivlist.o ../../../../libretro/obj/libretro/generated/version.o     -L"/home/camargo/ndk/android-ndk-r21d/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a" -L"/home/camargo/ndk/android-ndk-r21d/platforms/android-24/arch-arm/usr/lib" -L"." -L"../../../../libretro/bin/mame_mame" -L"../../../../libretro/bin" -shared -nostdlib -no-canonical-prefixes -Wl,--no-undefined -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -gcc-toolchain /home/camargo/ndk/android-ndk-r21d/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64 --sysroot=/home/camargo/ndk/android-ndk-r21d/platforms/android-24/arch-arm /home/camargo/ndk/android-ndk-r21d/platforms/android-24/arch-arm/usr/lib/crtbegin_so.o /home/camargo/ndk/android-ndk-r21d/platforms/android-24/arch-arm/usr/lib/crtend_so.o -target armv7-none-linux-androideabi -march=armv7-a -mthumb -fPIC -shared ../../../../libretro/bin/mame_mame/libadp.a ../../../../libretro/bin/mame_mame/libalba.a
(...) many files (...)
../../../../libretro/bin/mame_mame/libocore_retro.a -lc -ldl -lm -landroid -llog -lc++_static -lc++abi -lstdc++ -landroid_support -lunwind -lgcc -lEGL -lGLESv1_CM -lGLESv2
../../../../libretro/bin/mame_mame/liboptional.a(netlist.o):netlist.cpp:function netlist_mame_analog_output_device::pre_parse_action(netlist::nlparse_t&): error: undefined reference to 'aligned_alloc'
../../../../libretro/bin/mame_mame/liboptional.a(netlist.o):netlist.cpp:function netlist_mame_logic_output_device::pre_parse_action(netlist::nlparse_t&): error: undefined reference to 'aligned_alloc'
../../../../libretro/bin/mame_mame/liboptional.a(netlist.o):netlist.cpp:function netlist_mame_stream_output_device::pre_parse_action(netlist::nlparse_t&): error: undefined reference to 'aligned_alloc'
../../../../libretro/bin/mame_mame/liboptional.a(netlist.o):netlist.cpp:function netlist_mame_device::base_validity_check(validity_checker&) const: error: undefined reference to 'aligned_alloc'
clang++: error: linker command failed with exit code 1 (use -v to see invocation)

Test case

  1. Clone https://github.com/libretro/mame.git
  2. Checkout af902d6ba630a91d9f75508c5e4f14b89c61acfa
  3. Set the necessary NDK environment variables. Sample:
export NDK=/home/camargo/ndk/android-ndk-r21d
export ANDROID_NDK_ROOT=${NDK}
export ANDROID_NDK_LLVM=${NDK}/toolchains/llvm/prebuilt/linux-x86_64
export ANDROID_NDK_ARM=${NDK}/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64
export ANDROID_NDK_ARM64=${NDK}/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64
  1. Compile mame
    make -f Makefile.libretro platform=android -j8

Environment Details

  • NDK Version:
    Pkg.Desc = Android NDK
    Pkg.Revision = 21.3.6528147
  • Build system: genie
  • Host OS: Linux - Archlinux 5.7.8-arch1-1

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions