Ticket #2121: armel-support.diff

File armel-support.diff, 2.9 KB (added by Josh, 11 years ago)

Optimize for armv7-a, but maintain backward compatibility for older instruction sets. Use default FPU and ABI. (Updated comments)

  • build/premake/premake4.lua

    diff --git a/build/premake/premake4.lua b/build/premake/premake4.lua
    index 5605406..eef3dd5 100644
    a b function project_set_build_flags()  
    268268            end
    269269
    270270            if arch == "arm" then
    271                 -- disable warnings about va_list ABI change
    272                 buildoptions { "-Wno-psabi" }
     271                -- disable warnings about va_list ABI change and
     272                -- target generic armv7 CPUs but use system default FPU/ABI
     273                buildoptions { "-Wno-psabi -mtune=generic-armv7-a" }
    273274                if _OPTIONS["android"] then
    274                     -- target generic arm CPUs with NEON
    275                     buildoptions { "-mtune=generic-arm -mfpu=neon -mfloat-abi=softfp" }
    276                 else
    277                     -- target Cortex-A15 CPUs with NEON
    278                     buildoptions { "-mtune=cortex-a15 -mfpu=neon-vfpv4 -mfloat-abi=hard" }
     275                    -- Android uses softfp, so we should too.
     276                    buildoptions { "-mfloat-abi=softfp" }
    279277                end
    280278            end
    281279
  • libraries/source/fcollada/src/FCollada/FUtils/FUAssert.cpp

    diff --git a/libraries/source/fcollada/src/FCollada/FUtils/FUAssert.cpp b/libraries/source/fcollada/src/FCollada/FUtils/FUAssert.cpp
    index 5f837ee..41598b6 100644
    a b  
    88
    99#include "StdAfx.h"
    1010#include "FUAssert.h"
     11#include "sys/signal.h"
    1112#ifdef __APPLE__
    1213#include <CoreServices/CoreServices.h>
    1314#endif
    bool FUAssertion::OnAssertionFailed(const char* file, uint32 line)  
    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(__arm__)
     49        __asm__("bkpt 0");
     50#elif defined(__i386__)
     51        __asm__("int $0x03");
     52#else
     53        throw(SIGTRAP);
    5254#endif // WIN32
    5355        return false;
    5456    }
  • libraries/source/fcollada/src/Makefile

    diff --git a/libraries/source/fcollada/src/Makefile b/libraries/source/fcollada/src/Makefile
    index e5eca2a..8991c7e 100644
    a b  
    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