diff --git a/uppsrc/ide/About.cpp b/uppsrc/ide/About.cpp index 83e31ca6e..cdb23c619 100644 --- a/uppsrc/ide/About.cpp +++ b/uppsrc/ide/About.cpp @@ -44,6 +44,15 @@ String SplashCtrl::GenerateVersionInfo(char separator) h << " (C++11)"; #endif +#if CPU_ARM + h << "(ARM"; + #if __ARM_FEATURE_UNALIGNED + h << " unaligned"; + #endif + h << ")"; +#endif + + #ifdef GUI_GTK h << " (Gtk)"; #endif diff --git a/uppsrc/ide/Builders/GccBuilder.cpp b/uppsrc/ide/Builders/GccBuilder.cpp index 221b96820..ae22ed7b7 100644 --- a/uppsrc/ide/Builders/GccBuilder.cpp +++ b/uppsrc/ide/Builders/GccBuilder.cpp @@ -399,6 +399,7 @@ bool GccBuilder::CreateLib(const String& product, const Vector& obj, } String tmpFileName; +#ifndef PLATFORM_BSD // BSD/MacOS ar does not support response files, OTOH has 1MB commandline limit if(lib.GetCount() + llib.GetCount() >= 8192) { tmpFileName = CacheFile(SHA1String(lib + llib)); @@ -436,6 +437,7 @@ bool GccBuilder::CreateLib(const String& product, const Vector& obj, lib << " @" << tmpFileName; } else +#endif lib << llib; int res = Execute(lib); diff --git a/uppsrc/ide/Builders/Install.cpp b/uppsrc/ide/Builders/Install.cpp index 41a7a49f7..d7441c830 100644 --- a/uppsrc/ide/Builders/Install.cpp +++ b/uppsrc/ide/Builders/Install.cpp @@ -10,8 +10,8 @@ COMPILER = "clang++"; COMMON_OPTIONS = "-mmacosx-version-min=10.13"; COMMON_CPP_OPTIONS = "-std=c++14 -Wall -Wno-logical-op-parentheses"; COMMON_C_OPTIONS = ""; -COMMON_LINK = ""; -COMMON_FLAGS = ""; +COMMON_LINK = "$COMMON$"; +COMMON_FLAGS = "$COMMON$"; DEBUG_INFO = "2"; DEBUG_BLITZ = "1"; DEBUG_LINKMODE = "1"; @@ -162,6 +162,12 @@ void CreateBuildMethods() Path("$INCLUDE$", "/opt/local/include;/usr/include;/opt/homebrew/include;/opt/homebrew/opt/openssl/include"); Path("$LIB$", "/opt/local/lib;/usr/lib;/opt/homebrew/lib;/opt/homebrew/opt/openssl/lib"); + + String common; + #ifdef CPU_ARM + common = "-arch arm64"; + #endif + bm.Replace("$COMMON$", common); SaveFile(bm_path, bm); } diff --git a/uppsrc/ide/Core/Builder.cpp b/uppsrc/ide/Core/Builder.cpp index bc5ec8ba6..d04e0cb0a 100644 --- a/uppsrc/ide/Core/Builder.cpp +++ b/uppsrc/ide/Core/Builder.cpp @@ -63,7 +63,12 @@ String Builder::CmdX(const char *s) else (cmdf ? cmd : r).Cat(*s); int q = r.Find(' '); - if(r.GetCount() > 8000 && q >= 0) { +#ifdef PLATFORM_BSD + const int limit = 1000000; +#else + const int limit = 8000; +#endif + if(r.GetCount() > limit && q >= 0) { String rn = CatAnyPath(outdir, AsString(tmpfilei.GetAdd(outdir, 0)++) + ".cmd"); PutVerbose("Generating response file: " << rn); PutVerbose(r);