Android build broken on OS X

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....

commit fe4bf3d91f40fc4a212f0623c1b0e965062a0029

Author: hogliux <>

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:

// set the option

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:

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

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