Opened 13 years ago

Closed 12 years ago

Last modified 8 years ago

#31614 closed defect (fixed)

radvd @1.6 'IPV6_PKTINFO’ undeclared - build failure

Reported by: pburgstaller@… Owned by: lars.rasmusson@…
Priority: Normal Milestone:
Component: ports Version: 2.0.3
Keywords: lion Cc:
Port: radvd

Description

OS: MacOSX 10.7.2 Xcode: 4.1

--->  Building radvd
DEBUG: Executing org.macports.build (radvd)
DEBUG: Environment: CPATH='/opt/local/include' CC_PRINT_OPTIONS_FILE='/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_net_radvd/radvd/work/.CC_PRINT_OPTIONS' LIBRARY_PATH='/opt/local/lib' CC_PRINT_OPTIONS='YES' MACOSX_DEPLOYMENT_TARGET='10.7'
DEBUG: Assembled command: 'cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_net_radvd/radvd/work/radvd-1.6" && /usr/bin/make -j4 -w all'
DEBUG: Executing command line:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_net_radvd/radvd/work/radvd-1.6" && /usr/bin/make -j4 -w all 
make: Entering directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_net_radvd/radvd/work/radvd-1.6'
/usr/bin/make  all-am
make[1]: Entering directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_net_radvd/radvd/work/radvd-1.6'
if /Developer/usr/bin/llvm-gcc-4.2 -DPATH_RADVD_CONF=\"/opt/local/etc/radvd.conf\" -DPATH_RADVD_LOG=\"/opt/local/var/log/radvd.log\" -DLOG_FACILITY=LOG_DAEMON -DPATH_RADVD_PID=\"/opt/local/var/run/radvd.pid\" -DVERSION=\"1.6\" -DINET6=1 -I. -I. -I. -I. -I.  -I/opt/local/include  -pipe -O2 -arch x86_64 -Wall -Wpointer-arith  -Wcast-qual -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -MT log.o -MD -MP -MF ".deps/log.Tpo" -c -o log.o log.c; \
	then mv -f ".deps/log.Tpo" ".deps/log.Po"; else rm -f ".deps/log.Tpo"; exit 1; fi
if /Developer/usr/bin/llvm-gcc-4.2 -DPATH_RADVD_CONF=\"/opt/local/etc/radvd.conf\" -DPATH_RADVD_LOG=\"/opt/local/var/log/radvd.log\" -DLOG_FACILITY=LOG_DAEMON -DPATH_RADVD_PID=\"/opt/local/var/run/radvd.pid\" -DVERSION=\"1.6\" -DINET6=1 -I. -I. -I. -I. -I.  -I/opt/local/include  -pipe -O2 -arch x86_64 -Wall -Wpointer-arith  -Wcast-qual -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -MT socket.o -MD -MP -MF ".deps/socket.Tpo" -c -o socket.o socket.c; \
	then mv -f ".deps/socket.Tpo" ".deps/socket.Po"; else rm -f ".deps/socket.Tpo"; exit 1; fi
if /Developer/usr/bin/llvm-gcc-4.2 -DPATH_RADVD_CONF=\"/opt/local/etc/radvd.conf\" -DPATH_RADVD_LOG=\"/opt/local/var/log/radvd.log\" -DLOG_FACILITY=LOG_DAEMON -DPATH_RADVD_PID=\"/opt/local/var/run/radvd.pid\" -DVERSION=\"1.6\" -DINET6=1 -I. -I. -I. -I. -I.  -I/opt/local/include  -pipe -O2 -arch x86_64 -Wall -Wpointer-arith  -Wcast-qual -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -MT recv.o -MD -MP -MF ".deps/recv.Tpo" -c -o recv.o recv.c; \
	then mv -f ".deps/recv.Tpo" ".deps/recv.Po"; else rm -f ".deps/recv.Tpo"; exit 1; fi
if /Developer/usr/bin/llvm-gcc-4.2 -DPATH_RADVD_CONF=\"/opt/local/etc/radvd.conf\" -DPATH_RADVD_LOG=\"/opt/local/var/log/radvd.log\" -DLOG_FACILITY=LOG_DAEMON -DPATH_RADVD_PID=\"/opt/local/var/run/radvd.pid\" -DVERSION=\"1.6\" -DINET6=1 -I. -I. -I. -I. -I.  -I/opt/local/include  -pipe -O2 -arch x86_64 -Wall -Wpointer-arith  -Wcast-qual -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -MT util.o -MD -MP -MF ".deps/util.Tpo" -c -o util.o util.c; \
	then mv -f ".deps/util.Tpo" ".deps/util.Po"; else rm -f ".deps/util.Tpo"; exit 1; fi
recv.c: In function ‘recv_rs_ra’:
recv.c:100: error: ‘IPV6_PKTINFO’ undeclared (first use in this function)
recv.c:100: error: (Each undeclared identifier is reported only once
recv.c:100: error: for each function it appears in.)
socket.c: In function ‘open_icmpv6_socket’:
socket.c:45: error: ‘IPV6_RECVPKTINFO’ undeclared (first use in this function)
socket.c:45: error: (Each undeclared identifier is reported only once
socket.c:45: error: for each function it appears in.)
make[1]: *** [recv.o] Error 1

Attachments (4)

radvd.log (18.7 KB) - added by pburgstaller@… 13 years ago.
mail.log
Portfile (1.4 KB) - added by Lars.Rasmusson@… 13 years ago.
Portfile for radvd 1.8.3
Portfile.2 (1.5 KB) - added by stefan.van.der.eijk@… 12 years ago.
RFC3542.include.patch (671 bytes) - added by stefan.van.der.eijk@… 12 years ago.

Download all attachments as: .zip

Change History (13)

Changed 13 years ago by pburgstaller@…

Attachment: radvd.log added

mail.log

comment:1 Changed 13 years ago by pburgstaller@…

Cc: pburgstaller@… added

Cc Me!

comment:2 Changed 13 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: pburgstaller@… removed
Owner: changed from macports-tickets@… to lars.rasmusson@…

comment:3 Changed 13 years ago by Lars.Rasmusson@…

Looking in the header file netinet6/in6.h which defines IPV6_PKTINFO I notice that it has been changed in Lion. I don't have Lion so I can't test it myself, but the header file says that to get the old definition of IPV6_PKTINFO you should define __APPLE_USE_RFC_2292 before the files are included.

Could you try and just add #define __APPLE_USE_RFC_2292 in the beginning (before importing includes.h) of socket.c send.c and recv.c

Here is Lion's in6.h http://www.opensource.apple.com/source/xnu/xnu-1699.24.8/bsd/netinet6/in6.h

Changed 13 years ago by Lars.Rasmusson@…

Attachment: Portfile added

Portfile for radvd 1.8.3

comment:4 Changed 13 years ago by Lars.Rasmusson@…

I added an attachment with a Portfile for a more recent version of radvd that handles RFC 3542, the RFC that supersedes RFC 2292.

comment:5 Changed 13 years ago by pburgstaller@…

Did the adding of

#define __APPLE_USE_RFC_2292

in socket.c, send.c and recv.c

Compiled like a charm!

Thank you very much, Peter

Last edited 8 years ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

Changed 12 years ago by stefan.van.der.eijk@…

Attachment: Portfile.2 added

Changed 12 years ago by stefan.van.der.eijk@…

Attachment: RFC3542.include.patch added

comment:6 Changed 12 years ago by stefan.van.der.eijk@…

One patch is needed in order for it to build on my mac mini (running Lion). See 2 attachments.

comment:7 in reply to:  6 Changed 12 years ago by stefan.van.der.eijk@…

Replying to stefan.van.der.eijk@…:

One patch is needed in order for it to build on my mac mini (running Lion). See 2 attachments.

$ diff -ur /opt/local/var/macports//sources/rsync.macports.org/release/ports/net/radvd/Portfile Portfile
--- /opt/local/var/macports//sources/rsync.macports.org/release/ports/net/radvd/Portfile        2011-10-18 19:30:23.000000000 +0200
+++ Portfile    2012-01-02 23:52:31.000000000 +0100
@@ -9,6 +9,7 @@
 maintainers         sics.se:lars.rasmusson
 homepage            http://www.litech.org/radvd/
 master_sites        ${homepage}dist/
+patchfiles          RFC3542.include.patch

 description         router advertisement daemon

Last edited 8 years ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

comment:8 Changed 12 years ago by Lars.Rasmusson@…

Does it work if you skip the patch just add the define as a command line argument in the Portfile?

configure.cflags      "-D__APPLE_USE_RFC_3542"

comment:9 Changed 12 years ago by jmroot (Joshua Root)

Keywords: lion added
Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.