linsong / sedona

The Sedona Framework for building smart, networked embedded devices easier.
https://linsong.github.io/sedona
Other
33 stars 28 forks source link

dev build doesn't work in the latest Mac OS Catalina (10.15.3) #43

Closed divisuals closed 4 years ago

divisuals commented 4 years ago

Similar to #4

While building sedona dev environment (using makedev), the binary compilation fails due to missing headers:

gcc -m32 -I/usr/include/machine -D__UNIX__=1 -DSOCKET_FAMILY_INET=1 -D__DARWIN__=1 -DPLAT_BUILD_VERSION=\"1.2.29\" /Users/<user>/_git/_PROJECTS/sedona/build/temp/generic-unix/*.c -O2 -o /Users/<user>/_git/_PROJECTS/sedona/bin/svm
In file included from /Users/<user>/_git/_PROJECTS/sedona/build/temp/generic-unix/datetimeStd_DateTimeServiceStd.c:9:
/Users/<user>/_git/_PROJECTS/sedona/build/temp/generic-unix/sedona.h:165:10: fatal error:
      'endian.h' file not found
#include <endian.h>
         ^~~~~~~~~~
1 error generated.

Few workarounds are available to copy header files or symlink machine/endian.h. However, with Apple continuing to tighten the dev tools, this needs a durable solution like this one in all native header files.

divisuals commented 4 years ago

Seems this is worse.

Even with pointing to the latest SDKs /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk get a compiler error:

ld: warning: The i386 architecture is deprecated for macOS (remove from the Xcode build setting: ARCHS)

As per the latest XCode release, last bullet, support for 32-bit architecture has been discontinued. Therefore, one may not be able to build sedona on MacOS.

Moving to docker builds may be the only solution moving forward. Closing this...

linsong commented 4 years ago

Yeah, seems Apple is deprecating all apps built for i386 in 10.15, that makes macOS less convenient development environment. Agreed with you, we can not do anything about this.