Ticket #2121: better-arm-support.diff

File better-arm-support.diff, 3.0 KB (added by Josh, 11 years ago)

Hopefully resolve the remaining issues.

  • build/premake/premake4.lua

     
    283283            end
    284284
    285285            if arch == "arm" then
    286                 -- disable warnings about va_list ABI change
    287                 buildoptions { "-Wno-psabi" }
     286                -- disable warnings about va_list ABI change and
     287                -- target generic armv7 CPUs but use system default FPU/ABI
     288                buildoptions { "-Wno-psabi -mtune=generic-armv7-a" }
    288289                if _OPTIONS["android"] then
    289                     -- target generic arm CPUs with NEON
    290                     buildoptions { "-mtune=generic-arm -mfpu=neon -mfloat-abi=softfp" }
    291                 else
    292                     -- target Cortex-A15 CPUs with NEON
    293                     buildoptions { "-mtune=cortex-a15 -mfpu=neon-vfpv4 -mfloat-abi=hard" }
     290                    -- Android uses softfp, so we should too.
     291                    buildoptions { "-mfloat-abi=softfp" }
    294292                end
    295293            end
    296294
  • libraries/source/fcollada/src/FCollada/FUtils/FUAssert.cpp

     
    88
    99#include "StdAfx.h"
    1010#include "FUAssert.h"
     11#include "sys/signal.h"
    1112#ifdef __APPLE__
    1213#include <CoreServices/CoreServices.h>
    1314#endif
     
    4142        {
    4243            return true;
    4344        }
    44 #elif defined (__APPLE__)
    45         Debugger();
    46         //SysBreak();
    47 #elif defined (__arm__)
    48         __asm__("bkpt 0");
    49 #else
    50         // AFAIK This is available on all X86 platforms
    51         __asm__("int $0x03");
     45#elif defined(__APPLE__)
     46        Debugger();
     47        //SysBreak();
     48#elif defined(__i386__) or defined(__LP64__)
     49        // Use hardware breakpoints on x86 based hardware
     50        __asm__("int $0x03");
     51#else
     52        // Use software breakpoints when hardware breakpoints are unavalible
     53        throw(SIGTRAP);
    5254#endif // WIN32
    5355        return false;
    5456    }
  • libraries/source/fcollada/src/Makefile

     
    11OS_ARCH := $(shell uname -s)
    2 OS_CPU := $(shell uname -p)
    32
    43ifeq ($(OS_ARCH),Darwin)
    5 PIC_FLAGS ?= -fPIC
     4    PIC_FLAGS ?= -fPIC
    65else
    7 OS_DEFINE ?= -DLINUX
    8 PIC_FLAGS ?= -fpic
     6    OS_DEFINE ?= -DLINUX
     7    PIC_FLAGS ?= -fpic
    98endif
    109
    1110CXX ?= g++
    1211CXXFLAGS += -fvisibility=hidden -W -Wall -Wno-unused-parameter -Wno-unused-function $(OS_DEFINE) $(PIC_FLAGS) $(CPPFLAGS)
    13 # If we're compiling on *nix ARM, target Cortex-A15 CPUs with NEON ***mfloat-abi setting must be the same on everything linked to FCollada***
    14 ifeq ($(OS_CPU),armv7l)
    15 CXXFLAGS += -mtune=cortex-a15 -mfpu=neon-vfpv4 -mfloat-abi=hard
     12# If we're compiling on *nix ARM, target generic armv7 CPUs but use default FPU/ABI
     13ifeq ($(shell uname -p | grep -q "arm"; $?),0)
     14    CXXFLAGS += -mtune=generic-armv7-a
    1615endif
    1716CXXFLAGS_DEBUG := -O0 -g -D_DEBUG -DRETAIL
    1817CXXFLAGS_RELEASE := -O1 -DNDEBUG -DRETAIL