part-cw / lambdanative

LambdaNative is a cross-platform development environment written in Scheme, supporting Android, iOS, BlackBerry 10, OS X, Linux, Windows, OpenBSD, NetBSD, FreeBSD and OpenWrt.
http://www.lambdanative.org
Other
1.4k stars 86 forks source link

Can't build for ios on El Capitan #94

Closed VincentToups closed 8 years ago

VincentToups commented 8 years ago

Hi - I've got a large patch adding audio multiplexing to Android/Linux and probably ios. However, all my macs have iOS El Capitan on them and this seems to prevent me from building for ios.

I get this error:

`Shelleys-MacBook:lambdanative toups$ ./configure DemoHelloWorld ios debug ==> configured to build DemoHelloWorld for ios in debug mode == using source in /Users/toups/lambdanative/apps/DemoHelloWorld Shelleys-MacBook:lambdanative toups$ make === using profile your profile name here [/Users/toups/lambdanative/PROFILE].. === configured to build DemoHelloWorld version 1.0 for ios on macosx in debug mode

==> checking for required tools.. ==> checking for required libraries.. ==> checking for lambdanative tools.. => building lambdanative tool pngtool.. lambdanative: 39c5152 ==> creating libraries needed for pngtool.. => liblambdanative.. => cleaning up.. => exploding library liblambdanative.. => compiling scheme payload.. /Users/toups/lambdanative/modules/ln_core/ln_core.scm .. gcc -DMACOSX -m64 -D_SINGLE_HOST -D__LIBRARY -DPRIMAL -DSTANDALONE -c -o /Users/toups/Library/Caches/lambdanative/macosx/armv7/build/2717042989.o /Users/toups/Library/Caches/lambdanative/macosx/armv7/build/2717042989.c -I/Users/toups/Library/Caches/lambdanative/macosx/armv7/include -I/Users/toups/Library/Caches/lambdanative/macosx/armv7/include/freetype2 -I/Users/toups/lambdanative/modules/ln_core In file included from /usr/include/Availability.h:168:0, from /usr/include/wchar.h:72, from /Users/toups/Library/Caches/lambdanative/macosx/armv7/include/gambit.h:766, from /Users/toups/Library/Caches/lambdanative/macosx/armv7/build/2717042989.c:910: /System/Library/Frameworks/CoreServices.framework/Frameworks/FSEvents.framework/Headers/FSEvents.h:490:41: error: expected ',' or '}' before 'attribute' kFSEventStreamEventFlagItemIsHardlink OSX_AVAILABLE_STARTING(MAC_10_10, __IPHONE_9_0) = 0x00100000, ^ In file included from /System/Library/Frameworks/CoreGraphics.framework/Headers/CGContext.h:18:0, from /System/Library/Frameworks/CoreGraphics.framework/Headers/CGBitmapContext.h:9, from /System/Library/Frameworks/CoreGraphics.framework/Headers/CoreGraphics.h:11, from /System/Library/Frameworks/ApplicationServices.framework/Headers/ApplicationServices.h:35, from /Users/toups/Library/Caches/lambdanative/macosx/armv7/build/2717042989.c:6586: /System/Library/Frameworks/CoreGraphics.framework/Headers/CGFont.h:53:1: error: initializer element is not constant static const CGFontIndex kCGGlyphMax = kCGFontIndexMax; ^ ERROR: failed on file /Users/toups/Library/Caches/lambdanative/macosx/armv7/build/2717042989.o BUILD FAILED - configure with verbose option for more information make: *\ [all] Error 1 Shelleys-MacBook:lambdanative toups$ `

I'm unfortunately at the end of my Mac OSX expertise. I believe we could solve the problem by overriding the CGFont.h header but I'd like your advice about where to put such an override header and what parts of the build need to know about it.

mgorges commented 8 years ago

There are actually two errors in your log. Unfortunately, I only have Yosemite installed right now so I can't test this! If you recently upgraded I am wondering if you could try the make scrub to clear the cache and see if that fixes the header conflict?

VincentToups commented 8 years ago

Hi Matthias,

I can reproduce this error on a clean checkout (except for PROFILE and SETUP) immediately after deleting the cache located at /Users/toups/Library/Caches/lambdanative .

On Sat, Jan 30, 2016 at 1:07 AM, Matthias Görges notifications@github.com wrote:

There are actually two errors in your log. Unfortunately, I only have Yosemite installed right now so I can't test this! If you recently upgraded I am wondering if you could try the make scrub to clear the cache and see if that fixes the header conflict?

— Reply to this email directly or view it on GitHub https://github.com/part-cw/lambdanative/issues/94#issuecomment-177082039 .

mgorges commented 8 years ago

@VincentToups okay, I guess it is time to upgrade a machine at work to ElCapitan and do some troubleshooting - might be a day or two, sorry!

VincentToups commented 8 years ago

Thanks for looking into it!

On Sat, Jan 30, 2016 at 1:29 PM, Matthias Görges notifications@github.com wrote:

@VincentToups https://github.com/VincentToups okay, I guess it is time to upgrade a machine at work to ElCapitan and do some troubleshooting - might be a day or two, sorry!

— Reply to this email directly or view it on GitHub https://github.com/part-cw/lambdanative/issues/94#issuecomment-177268106 .

clpetersen commented 8 years ago

I just upgraded my machine to el capitan (it was painful!), but can't reproduce the fault. I still can build the DemoHelloWorld app without problems for iOS. What version of xcode do you use? xcodebuild -version reports 6.1 here.

VincentToups commented 8 years ago

xcode-build says Xcode 7.2, build version 7C68 gcc --version is macports gcc49 4.9.3 -V

On Mon, Feb 1, 2016 at 2:48 PM, Chris Petersen notifications@github.com wrote:

I just upgraded my machine to el capitan (it was painful!), but can't reproduce the fault. I still can build the DemoHelloWorld app without problems for iOS. What version of xcode do you use? xcodebuild -version reports 6.1 here.

— Reply to this email directly or view it on GitHub https://github.com/part-cw/lambdanative/issues/94#issuecomment-178150962 .

clpetersen commented 8 years ago

I was finally able to reproduce this. The error happens while building the pngtool (for OS X) when configured to build an iOS app. A lingering CPU type from the iOS configuration broke the tool build. Fixed in commit 1b30602.

VincentToups commented 8 years ago

Hi Chris,

Unfortunately, I still can't build DemoHelloWorld. I've pasted a shell log of the entire process including git log -3 which indicates I have your fix, I think. Down at the bottom is the error, but hopefully something else in the log might be useful. I've also installed XCode 6.1 and removed the newever version.

Any ideas?

bash-3.2$ git log -3 |cat && make scrub \
          && make clean \
          && rm -rf /Users/toups/Library/Caches/lambdanative \
          && ./configure DemoHelloWorld ios debug \
          && make
commit bb9c4732f64808f73a8247b2bec30e031089403a
Author: Dustin Dunsmuir <ddunsmuir@cw.bc.ca>
Date:   Fri Feb 5 11:36:30 2016 -0800

    LN_GLGUI:DROPDOWNBOX: Added new parameter 'bidir (bidirectional)

    - If set to #t, expands both up and down if necessary to fit all items
(or up to 'maxitems)
    - Also auto-scroll if initially selected item is far offscreen in
pop-up list, auto-scroll to make it just one item offscreen.

commit 1b30602829920265f55d9ec9441118f2c0e3ae36 #### SHOULD HAVE FIX #####
Author: Chris Petersen <cpetersen@cw.bc.ca>
Date:   Wed Feb 3 14:48:31 2016 -0800

    make.sh: override cpu assignment when building tools

commit 6e7d594cd7d03b4f4081b1866001f8519a77e69d
Author: Chris Petersen <cpetersen@cw.bc.ca>
Date:   Wed Feb 3 14:11:47 2016 -0800

    make.sh: only generate artwork if changed
=== using profile your profile name here
[/Users/toups/lambdanative/PROFILE]..
=== configured to build pngtool version 1.0 for macosx on macosx in normal
mode

==> removing entire build cache..
=== using profile your profile name here
[/Users/toups/lambdanative/PROFILE]..
=== configured to build pngtool version 1.0 for macosx on macosx in normal
mode

==> cleaning up build files..
==> configured to build DemoHelloWorld for ios in debug mode
 == using source in /Users/toups/lambdanative/apps/DemoHelloWorld
=== using profile your profile name here
[/Users/toups/lambdanative/PROFILE]..
=== configured to build DemoHelloWorld version 1.0 for ios on macosx in
debug mode

==> checking for required tools..
==> checking for required libraries..
==> checking for lambdanative tools..
 => building lambdanative tool pngtool..
lambdanative: bb9c473
==> creating libraries needed for pngtool..
 => libz..
 => cloning https://github.com/madler/zlib.git..
 => configuring source..
 => compiling source..
 => compiling source..
 => cleaning up..
 => libpng..
 => downloading
https://prdownloads.sourceforge.net/libpng/libpng-1.6.16.tar.gz..
 == hash 50f3b31d013a31e2cac70db177094f6a7618b8be
 => extracting
/Users/toups/Library/Caches/lambdanative/packages/libpng-1.6.16.tar.gz..
 => configuring source..
 => compiling source..
 => compiling source..
 => cleaning up..
 => libjpeg..
 => downloading
http://downloads.sourceforge.net/project/libjpeg/libjpeg/6b/jpegsrc.v6b.tar.gz
..
 == hash 7079f0d6c42fad0cfba382cf6ad322add1ace8f9
 => extracting
/Users/toups/Library/Caches/lambdanative/packages/jpegsrc.v6b.tar.gz..
 => patching source...
 => applying patches from ../int32.patch
 => configuring source..
 => compiling source..
 => compiling source..
 => cleaning up..
 => libfreetype..
 => downloading
http://download.savannah.gnu.org/releases/freetype/freetype-2.5.5.tar.gz..
 == hash 884830e13a4ebd780150697bab7e172e902194c9
 => extracting
/Users/toups/Library/Caches/lambdanative/packages/freetype-2.5.5.tar.gz..
 => patching source...
 => configuring source..
 => compiling source..
 => compiling source..
 => cleaning up..
 => libgd..
 => downloading http://www.lambdanative.org/libgd-2.1.1/libgd-2.1.1.tar.gz..
 == hash 7abafc6f04a1de784a3e619a82239933a5155866
 => extracting
/Users/toups/Library/Caches/lambdanative/packages/libgd-2.1.1.tar.gz..
 => patching source...
 => applying patches from ../iconv.patch
 => applying patches from ../jpeg.patch
 => applying patches from ../qnx.patch
 => applying patches from ../vpx.patch
 => configuring source..
 => compiling source..
 => cleaning up..
 => libgambc..
 => downloading
https://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/source/gambc-v4_7_9.tgz
..
 == hash 3af67937b3e3fb11b6fd87040fde7184b2e753f3
 => extracting
/Users/toups/Library/Caches/lambdanative/packages/gambc-v4_7_9.tgz..
 => patching source...
 => configuring source..
 => compiling source..
 => compiling source..
 => cleaning up..
 => liblambdanative..
 => cleaning up..
 => exploding library libgambc..
 => exploding library liblambdanative..
 => exploding library libz..
 => exploding library libpng..
 => exploding library libfreetype..
 => exploding library libjpeg..
 => exploding library libgd..
 => compiling scheme payload..
    /Users/toups/lambdanative/modules/config/config.scm ..
    /Users/toups/lambdanative/modules/ln_core/ln_core.scm ..
 gcc  -DMACOSX -m64  -D___SINGLE_HOST -D___LIBRARY -D___PRIMAL -DSTANDALONE
-c -o /Users/toups/Library/Caches/lambdanative/macosx/build/2717042989.o
/Users/toups/Library/Caches/lambdanative/macosx/build/2717042989.c
-I/Users/toups/Library/Caches/lambdanative/macosx/include
-I/Users/toups/Library/Caches/lambdanative/macosx/include/freetype2
-I/Users/toups/lambdanative/modules/ln_core
In file included from /usr/include/Availability.h:168:0,
                 from /usr/include/wchar.h:72,
                 from
/Users/toups/Library/Caches/lambdanative/macosx/include/gambit.h:766,
                 from
/Users/toups/Library/Caches/lambdanative/macosx/build/2717042989.c:910:
/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Headers/LSInfoDeprecated.h:1242:34:
error: expected ',' or '}' before '__attribute__'
   kLSHandlerOptionsDefault
__OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_10_4, __MAC_10_11, __IPHONE_4_0,
__IPHONE_9_0, "Creator codes are deprecated on OS X.") = 0,
                                  ^
/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Headers/LSOpenDeprecated.h:27:33:
error: expected ',' or '}' before '__attribute__'
   kLSLaunchStartClassic
__OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_10_0, __MAC_10_11, __IPHONE_NA,
__IPHONE_NA, "The Classic environment is no longer supported.") =
0x00020000, /* Does nothing.*/
                                 ^
In file included from
/System/Library/Frameworks/CoreGraphics.framework/Headers/CGContext.h:18:0,
                 from
/System/Library/Frameworks/CoreGraphics.framework/Headers/CGBitmapContext.h:9,
                 from
/System/Library/Frameworks/CoreGraphics.framework/Headers/CoreGraphics.h:11,
                 from
/System/Library/Frameworks/ApplicationServices.framework/Headers/ApplicationServices.h:35,
                 from
/Users/toups/Library/Caches/lambdanative/macosx/build/2717042989.c:6586:
/System/Library/Frameworks/CoreGraphics.framework/Headers/CGFont.h:53:1:
error: initializer element is not constant
 static const CGFontIndex kCGGlyphMax = kCGFontIndexMax;
 ^
ERROR: failed on file
/Users/toups/Library/Caches/lambdanative/macosx/build/2717042989.o
BUILD FAILED - configure with verbose option for more information
make: *** [all] Error 1
bash-3.2$

On Wed, Feb 3, 2016 at 5:54 PM, Chris Petersen notifications@github.com wrote:

I was finally able to reproduce this. The error happens while building the pngtool (for OS X) when configured to build an iOS app. A lingering CPU type from the iOS configuration broke the tool build. Fixed in commit 1b30602 https://github.com/part-cw/lambdanative/commit/1b30602829920265f55d9ec9441118f2c0e3ae36 .

— Reply to this email directly or view it on GitHub https://github.com/part-cw/lambdanative/issues/94#issuecomment-179516355 .

mgorges commented 8 years ago

Your error is still building LambdaNative tools, specifically pngtools, which is compiled for macosx and not ios. Can you build regular LambdaNative apps for mac?

VincentToups commented 8 years ago

When I configure for "macosx" I have the same output, I believe:

(Command line used to build at the bottom)

/Users/toups/lambdanative/modules/config/config.scm ..

/Users/toups/lambdanative/modules/ln_core/ln_core.scm ..


 gcc  -DMACOSX -m64  -D___SINGLE_HOST -D___LIBRARY -D___PRIMAL -DSTANDALONE
-c -o /Users/toups/Library/Caches/lambdanative/macosx/build/2717042989.o
/Users/toups/Library/Caches/lambdanative/macosx/build/2717042989.c
-I/Users/toups/Library/Caches/lambdanative/macosx/include
-I/Users/toups/Library/Caches/lambdanative/macosx/include/freetype2
-I/Users/toups/lambdanative/modules/ln_core

In file included from /usr/include/Availability.h:168:0,
         from /usr/include/wchar.h:72,

         from

/Users/toups/Library/Caches/lambdanative/macosx/include/gambit.h:766,
         from

/Users/toups/Library/Caches/lambdanative/macosx/build/2717042989.c:910:

/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Headers/LSInfoDeprecated.h:1242:34:
error: expected ',' or '}' before '**attribute**'

   kLSHandlerOptionsDefault
__OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_10_4, __MAC_10_11, __IPHONE_4_0,
__IPHONE_9_0, "Creator codes are deprecated on OS X.") = 0,
                          ^

/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Headers/LSOpenDeprecated.h:27:33:
error: expected ',' or '}' before '**attribute**'

   kLSLaunchStartClassic
__OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_10_0, __MAC_10_11, __IPHONE_NA,
__IPHONE_NA, "The Classic environment is no longer supported.") =
0x00020000, /\* Does nothing.*/
                         ^

In file included from
/System/Library/Frameworks/CoreGraphics.framework/Headers/CGContext.h:18:0,
         from

/System/Library/Frameworks/CoreGraphics.framework/Headers/CGBitmapContext.h:9,
         from

/System/Library/Frameworks/CoreGraphics.framework/Headers/CoreGraphics.h:11,
         from

/System/Library/Frameworks/ApplicationServices.framework/Headers/ApplicationServices.h:35,
         from


/Users/toups/Library/Caches/lambdanative/macosx/build/2717042989.c:6586:

/System/Library/Frameworks/CoreGraphics.framework/Headers/CGFont.h:53:1:
error: initializer element is not constant

 static const CGFontIndex kCGGlyphMax = kCGFontIndexMax;

 ^

ERROR: failed on file
/Users/toups/Library/Caches/lambdanative/macosx/build/2717042989.o

BUILD FAILED - configure with verbose option for more information

make: **\* [all] Error 1

Shelleys-MacBook:lambdanative toups$ clear && make scrub && make clean &&
rm -rf /Users/toups/Library/Caches/lambdanative && ./configure
DemoHelloWorld macosx debug && make```

On Sun, Feb 7, 2016 at 4:10 PM, Matthias Görges notifications@github.com
wrote:

> Your error is still building LambdaNative tools, specifically pngtools,
> which is compiled for macosx and not ios. Can you build regular
> LambdaNative apps for mac?
> 
> —
> Reply to this email directly or view it on GitHub
> https://github.com/part-cw/lambdanative/issues/94#issuecomment-181118201
> .
mgorges commented 8 years ago

@VincentToups, sorry about your continuing problems. Are you doing this on a stock LambdaNative version or have you patched it already? If you look at ticket #70, there can be some fuzziness about import versus include, which seems to cause a very similar error! Hence, I am wondering if you had changed anything else?

clpetersen commented 8 years ago

I've just done:

rm -rf ~/Library/Caches/lambdanative
rm -rf ~/.lambdanative
git clone https://github.com/part-cw/lambdanative.git
cd lambdanative
cp PROFILE.template PROFILE
cp SETUP.template SETUP
./configure DemoHelloWorld ios debug verbose
make

This completes compilation without issues (though of course ultimately it fails the final iOS code signing because PROFILE.template doesn't contain valid certificate references). I'm now using XCode 7.2.1 (the latest stable release). Your failure is in the macosx build of the tools, and my gut feel at the moment is that might be related to your use of gcc instead of clang. You mentioned previously using macports gcc, so I assume you have symlinked /usr/bin/gcc to the macports version? Please undo that and try again.

clpetersen commented 8 years ago

Another observation that may be relevant is that XCode contains a bug in the Availability.h header, as described here https://trac.macports.org/ticket/48471 and this trips up various code, including gcc compilation. The bug was apparently fixed in XCode 7.3 beta 2. It might be worth trying to upgrade to 7.3 beta 2 to see if your problem goes away.

VincentToups commented 8 years ago

Pretty sure this is stock lambdanative, without any patches. The build was against a clean clone of the repo. I'll try a newer XCode and get back to you.

On Mon, Feb 8, 2016 at 4:08 PM, Matthias Görges notifications@github.com wrote:

@VincentToups https://github.com/VincentToups, sorry about your continuing problems. Are you doing this on a stock LambdaNative version or have you patched it already? If you look at ticket #70 https://github.com/part-cw/lambdanative/issues/70, there can be some fuzziness about import versus include, which seems to cause a very similar error! Hence, I am wondering if you had changed anything else?

— Reply to this email directly or view it on GitHub https://github.com/part-cw/lambdanative/issues/94#issuecomment-181542250 .

VincentToups commented 8 years ago

Hi - I think we might be able to close this issue, as I have just done a fresh install on my new macbook pro running El Capitan and can build both osx and ios versions.