Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 6 Nov 2003 17:44:59 +0100
From:      Marius Strobl <marius@alchemy.franken.de>
To:        Alexander Kabaev <ak03@gte.com>
Cc:        freebsd-current@freebsd.org
Subject:   Re: g++ problem
Message-ID:  <20031106174459.A55161@newtrinity.zeist.de>
In-Reply-To: <20031106112828.7985100a.ak03@gte.com>; from ak03@gte.com on Thu, Nov 06, 2003 at 11:28:28AM -0500
References:  <200311061555.hA6Ft08H051563@www.kukulies.org> <20031106112828.7985100a.ak03@gte.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Nov 06, 2003 at 11:28:28AM -0500, Alexander Kabaev wrote:
> On Thu, 6 Nov 2003 16:55:00 +0100 (CET)
> "C. Kukulies" <kuku@www.kukulies.org> wrote:
> 
> > I tried to compile a virus-scanner for Linux that allows for scanning
> > Windoze PCs in a network for all sorts of recent viruses (RPC/DCOM and
> > such).
> > 
> > http://www.enyo.de/fw/software/doscan
> > 
> > Compilation fails with the following:
> > 
> > kukuboo2k# gmake
> > g++ -g -O2 -Wall -I/usr/local/include -I. -I. -I./lib \
> >         -MMD -MF src/doscan.d \
> >         -c -o src/doscan.o src/doscan.cc
> > In file included from src/doscan.cc:28:
> > /usr/local/include/getopt.h:115: error: declaration of C function `int
> > getopt()
> >    ' conflicts with
> > /usr/include/unistd.h:377: error: previous declaration `int
> > getopt(int, char*
> >    const*, const char*)' here
> > gmake: *** [src/doscan.o] Error 1
> > 
> > I wonder where /usr/local/include comes from. If I remove that it
> > compiles smoothly.
> 
> Uhm, from you command line? What _this_ has to do with a compiler?
> 

This happens with g++ 3.x when the devel/libgnugetopt port is installed
and both its getopt.h and the base unistd.h are included. There are
several ports that have workarounds for this issue.
I have a patch for devel/libgnugetopt at
ftp://ftp.zeist.de/pub/patches/devel_libgnugetopt.diff
that should fix this issue by updating to the latest sources.
In my opinion the right thing to do is however to also include
getopt_long_only() in libc and not only getopt_long() so one can get
rid of the devel/libgnugetopt port. I have a patch for this at
ftp://ftp.zeist.de/pub/patches/src_getopt_long_only.diff
When I have time I'll continue testing of both and eventually submit
PRs.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20031106174459.A55161>