Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 23 May 2000 18:46:56 +0100
From:      Nik Clayton <nik@freebsd.org>
To:        Dirk Froemberg <dirk@freebsd.org>
Cc:        ports@freebsd.org
Subject:   Re: palm/pose on 3.4-stable
Message-ID:  <20000523184656.A1760@catkin.nothing-going-on.org>
In-Reply-To: <20000522164816.A84681@physik.TU-Berlin.DE>; from dirk@freebsd.org on Mon, May 22, 2000 at 04:48:16PM %2B0200
References:  <20000522123134.A58955@catkin.nothing-going-on.org> <20000522164816.A84681@physik.TU-Berlin.DE>

next in thread | previous in thread | raw e-mail | index | archive | help
Dirk,

[I've cc'd -ports on this, just to open it out to anyone else's ideas]

On Mon, May 22, 2000 at 04:48:16PM +0200, Dirk Froemberg wrote:
> On Mon, May 22, 2000 at 12:31:34PM +0100, Nik Clayton wrote:
> > Do you know if palm/pose works on 3.4-stable?
> 
> Unfortunally it doesn't.
> 
> Someone submitted a PR: http://www.freebsd.org/cgi/query-pr.cgi?pr=18452
> 
> I found no time, yet, to work on it...

Right.  Well, the PR's correct in that you need to build pose and fltk 
with "USE_NEWGCC=yes" in the Makefile.  I think they can both be added
without doing any harm.

You also need to add the attached patch to remove "/usr/lib" from
Makefile.in.  I assume that's a 3.x only change.  Having said that, 
pose built on a 4.0 system I have here with that change, so I assume 
it's benign.

Then the build fails because of .h file inconsistencies.  <sys/socket.h> 
on 3.x has the following prototype for getsockopt();

    int    getsockopt __P((int, int, int, void *, int *));

On 4.x, it's

    int     getsockopt __P((int, int, int, void *, socklen_t *));

Notice that the type of the last parameter has changed.  However, both
3.x and 4.x define a socklen_t type;

    typedef u_int32_t       socklen_t;

This looks like a bug in 3.x's socket.h.  setsockopt() has a similar
problem.  During the build, gcc detects the signed/unsigned problem
(socklen_t is unsigned, and is what pose uses, but getsockopt's final
parameter is signed in 3.x) and aborts.

Now I can kludge round this, first you have to remove patch-ab, then
you need to edit /usr/include/sys/socket.h and comment out the definition
of socklen_t while doing the build.

That's enough to get pose built on 3.x.  Obviously, this isn't acceptable
as a general solution.  Any ideas?

N
-- 
Internet connection, $19.95 a month.  Computer, $799.95.  Modem, $149.95.
Telephone line, $24.95 a month.  Software, free.  USENET transmission,
hundreds if not thousands of dollars.  Thinking before posting, priceless.
Somethings in life you can't buy.  For everything else, there's MasterCard.
  -- Graham Reed, in the Scary Devil Monastery


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-ports" in the body of the message




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