Android build broken on OS X


#1

Seeing this on two machines.

 [exec] In file included from jni/../../../../../Dev/git/JUCE/modules/juce_core/juce_core.cpp:150:0:

     [exec] jni/../../../../../Dev/git/JUCE/modules/juce_core/network/juce_Socket.cpp: In member function 'bool juce::DatagramSocket::setEnablePortReuse(bool)':

     [exec] jni/../../../../../Dev/git/JUCE/modules/juce_core/network/juce_Socket.cpp:707:25: error: 'SO_REUSEPORT' was not declared in this scope

     [exec]      const int optname = SO_REUSEPORT;

     [exec]                          ^

     [exec] make: *** [obj/local/armeabi-v7a/objs/juce_jni/__/__/__/__/__/Dev/git/JUCE/modules/juce_core/juce_core.o] Error 1

     [exec] make: *** Waiting for unfinished jobs....


#2
commit fe4bf3d91f40fc4a212f0623c1b0e965062a0029

Author: hogliux <fabian.renn@gmail.com>

Date:   Thu Sep 17 12:06:21 2015 +0100

    Add support to allow sharing a DatagramSocket port with other applications

If you roll back to the commit just before you should be fine. It looks like he might have been popping in some code from a modified juce_socket.cpp I posted a few years ago - or we just picked similiar function names. In any event, I ran into something similiar when I recently updated an Android app and popped my lastest hacked socket versions in.

SO_REUSEPORT is seemingly now deprecated from the Android flavor of Linux. Depending on exactly what you are trying to do you can generally use SO_REUSEADDR or get away with something like:

#ifdef (SO_REUSEPORT)
// set the option
#endif

I am wrapping something up tonight and tomorrow, then can pull the tip and take a look at how Fabian is intending the socket options to function.

Edit: I tried to find a tediously long explanation of socket options that I once wrote but thankfully couldn't. The writeup in the answer here is actually better: http://stackoverflow.com/questions/14388706/socket-options-so-reuseaddr-and-so-reuseport-how-do-they-differ-do-they-mean-t


#3

Aye, I rolled back a few commits and figured it had something to do with that socket update alright... thanks for confirming the issue!


#4

This is also fixed on the latest tip now. Thanks for reporting!