pkgsrc-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: pkg/40198 (www/amaya compile errors (modular xorg, NetBSD 4.0) .. again)
The following reply was made to PR pkg/40198; it has been noted by GNATS.
From: Robert Elz <kre%munnari.OZ.AU@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc:
Subject: Re: pkg/40198 (www/amaya compile errors (modular xorg, NetBSD 4.0) ..
again)
Date: Wed, 17 Aug 2011 16:16:38 +0700
Date: Tue, 16 Aug 2011 01:05:03 +0000 (UTC)
From: David Holland <dholland-pbugs%NetBSD.org@localhost>
Message-ID: <20110816010503.6874763B89A%www.NetBSD.org@localhost>
On Mon, Aug 15, 2011 at 02:15:05PM +0000, I wrote:
> Leave this in feedback state for now ... the error with intptr_t
> is gone, but is just replaced by a whole different set
In reply ... From: David Holland <dholland-pbugs%netbsd.org@localhost>
| Subject: Re: pkg/40198 (www/amaya compile errors (modular xorg, NetBSD 4.0)
| .. again)
| Date: Tue, 16 Aug 2011 01:00:03 +0000
| ok.
|
| I'm not sure it's worth spending any time on this pile...
No, and if someone were to mark it BROKEN or simply cvs rm it, I wouldn't
be complaining, but as long as it continues to pretend it should be usable,
we can probably afford a little time in figuring out why it isn't.
The errors I'm seeing this time (start out as) ...
c++ -O2 -Dunix -fno-strict-aliasing -I/usr/pkg/include -I/usr/include
-I/usr/include/krb5 -I/usr/pkg/include/freetype2 -Wall -x c++ -D__cplusplus
-D_UNIX -D_GL -D_WX -DHAVE_CONFIG_H -I.. -I../../amaya/xpm
-I../../thotlib/include -I../../thotlib/internals/var
-I../../thotlib/internals/h -I../../thotlib/internals/f
-I/usr/pkg/lib/wx/include/gtk2-unicode-release-2.8 -I/usr/pkg/include/wx-2.8
-D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D__WXGTK__ -pthread -I/usr/include
-I/usr/pkg/include/freetype2 -I/usr/pkg/include -c
../../thotlib/dialogue/base64.cpp -o dialogue/base64.o
../../thotlib/dialogue/base64.cpp:120: error: 'wxBase64DecInputStream' has not
been declared
../../thotlib/dialogue/base64.cpp:120: error: ISO C++ forbids declaration of
'wxBase64DecInputStream' with no type
../../thotlib/dialogue/base64.cpp: In function 'int
wxBase64DecInputStream(wxInputStream&)':
../../thotlib/dialogue/base64.cpp:120: error: only constructors take base
initializers
../../thotlib/dialogue/base64.cpp:127: error: 'm_out' was not declared in this
scope
../../thotlib/dialogue/base64.cpp:128: error: 'm_in' was not declared in this
scope
There are actually a lot of errors of similar natures from this same file,
that I'm not including here, as I think I understand the immediate cause of
this problem, if not the underlying problem.
base64.cpp includes ...
#include "base64.h"
and in ../include/base64.h there is what looks to be a perfectly adequate
definition of a wxBase64DecInputStream class, with members including m_out
and m_in (and others that deleted error messages claim are missing.)
The file is protected by (two) #ifder's, but one of those looks to just
be the typical double include protection, which shouldn't be causing the
file content to be ignored, and the other is also present in base64.cpp
(the file wouldn't be being compiled at all, other than as an empty source
file, if the symbol wasn't defined).
But clearly something is causing that base64.h file (or its contents) to be
ignored, so I looked through the sequence of the -I directives on the
command line, and found that
/usr/include/krb5/base64.h
exists (on NetBSD 4 anyway - it appears to be there on NetBSD 5 as well)
and contains nothing that would be useful to this base64.cpp file.
Namespace pollution (of a slightly different kind than we normally see.)
A simple fix would be to change the #include in base64.cpp to be
#include "../include/base64.h" and that seems to avoid the problem
(only seems, as I don't think this is the right fix, and so didn't
really do the compile properly to verify it - just enough to see that
these errors didn't occur and that it seemed to have reached beyond the
point where they would.)
Rather, I cannot imagine why anything (with the outside possible
exception of very kerberos code - and really not even there) should
ever do
-I /usr/include/krb5
Rather, whenever one of those files needs to be included, it should be
included as <krb5/filename,h> and obtained via (-I /usr/include) most
probably via the default cc include path - I also have no idea why
this thing's build needs explicit -I /usr/include - that suggests code
bugs to me).
So, first step in making progress on this would seem to be to work out what's
adding that weird -I flag, and nuke it, and if that causes other build
problems, fix those by patching the #include lines as needed.
That should get us past this particular build failure, and onto the next one!
If no-one else (eg; dholland...) makes any progress on this before the
next time I have some time to spare for it, I'll take a look at figuring
out what is adding that -I and see if I can make it go away. Not today.
kre
Home |
Main Index |
Thread Index |
Old Index