On Wed, Sep 12, 2012 at 08:45:42PM +0200, Stefan Sperling wrote:
> On Wed, Sep 12, 2012 at 11:17:50AM -0700, Ryan Freeman wrote:
> > Hey ports@
> 
> Hey Ryan,
> 
> > Hoping I can borrow some eyes on this one, as I have beaten this to
> > death myself.
> > 
> > Basically, a program that build just fine with its plain source
> > archive always fails when trying to turn it into a port:
> > 
> > 
> > building via ports:
> > 
> > [ 60%] Building CXX object source/CMakeFiles/vavoom.dir/net_udp.o
> > cd /home/ryan/obj/pobj/vavoom-1.33/build-i386/source && /usr/bin/c++   
> > -DHAVE_INTTYPES_H=1 -g -I/home/ryan/obj/pobj/vavoom-1.33/build-i386/source 
> > -I/usr/local/include/SDL -I/usr/local/include -I/usr/X11R6/include 
> > -I/usr/local/include/AL -I/usr/local/include/libpng 
> > -I/home/ryan/obj/pobj/vavoom-1.33/vavoom-1.33/source/-pthread -o 
> > CMakeFiles/vavoom.dir/net_udp.o -c 
> > /home/ryan/obj/pobj/vavoom-1.33/vavoom-1.33/source/net_udp.cpp
> > /home/ryan/obj/pobj/vavoom-1.33/vavoom-1.33/source/net_udp.cpp:59: error: 
> > expected identifier before numeric constant
> > /home/ryan/obj/pobj/vavoom-1.33/vavoom-1.33/source/net_udp.cpp:59: error: 
> > expected `}' before numeric constant
> > /home/ryan/obj/pobj/vavoom-1.33/vavoom-1.33/source/net_udp.cpp:59: error: 
> > expected unqualified-id before numeric constant
> > /home/ryan/obj/pobj/vavoom-1.33/vavoom-1.33/source/net_udp.cpp:61: error: 
> > expected unqualified-id before ')' token
> > /home/ryan/obj/pobj/vavoom-1.33/vavoom-1.33/source/net_udp.cpp:82: error: 
> > expected declaration before '}' token
> > *** Error code 1
> 
> Line 59 of that file reads:
> 
>         enum { MAXHOSTNAMELEN = 256 };
> 
> This name is also defined as a macro in sys/param.h:
> 
> sys/param.h:#define MAXHOSTNAMELEN      256             /* max hostname
> size */
> 
> So it expands to this, leading to the error you're seeing because
> it's invalid syntax:
> 
>         enum { 256 = 256 };

Realized i didn't reply to ports@ on this, so thank you very much,
also for seeking out the source file in question as I did not provide
that info.

> 
> > 
> > building from source archive:
> > 
> > [ 60%] Building CXX object source/CMakeFiles/vavoom.dir/net_udp.o
> > cd /home/ryan/src/vavoom/vavoom-1.33/build/source && /usr/bin/c++   
> > -DHAVE_INTTYPES_H=1 -g -I/home/ryan/src/vavoom/vavoom-1.33/build/source 
> > -I/usr/local/include/SDL -I/usr/local/include -I/usr/X11R6/include 
> > -I/usr/local/include/AL -I/usr/local/include/libpng 
> > -I/home/ryan/src/vavoom/vavoom-1.33/source/-pthread -o 
> > CMakeFiles/vavoom.dir/net_udp.o -c 
> > /home/ryan/src/vavoom/vavoom-1.33/source/net_udp.cpp
> > 
> > 
> > On the latter example, the build continues to linking and a working
> > binary.  jasperix suggested CFLAGS, but unless I am out to lunch
> > those CFLAGS in above output are exactly the same.  The only differing
> > factor is where the source and output directories reside.
> > 
> > Anything come to mind?  
> > 
> > Cheers,
> > --ryan
> 
> For some reason sys/param.h is not included in the latter case.
> Not sure why. Could be due to autoconf magic, perhaps, i.e. some
> decision made by the configure script.
> 
> In any case, renaming MAXHOSTNAMELEN throughout the net_udp.cpp
> file should fix it. Alternatively, since both expand to 256 anyway
> you could also wrap line 59 like this:
> 
> #ifndef MAXHOSTNAMELEN
>         enum { MAXHOSTNAMELEN = 256 };
> #endif
>

I added the #ifndef MAXHOSTNAMELEN as a patch and that has solved
the issue.  :)

Cheers!

-ryan
 

Reply via email to