| Summary: | kdebase2 port build problems, auth.c and session.c | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | Base System | Reporter: | csigler <csigler> | ||||||
| Component: | i386 | Assignee: | Will Andrews <will> | ||||||
| Status: | Closed FIXED | ||||||||
| Severity: | Affects Only Me | ||||||||
| Priority: | Normal | ||||||||
| Version: | 4.2-RELEASE | ||||||||
| Hardware: | Any | ||||||||
| OS: | Any | ||||||||
| Attachments: |
|
||||||||
|
Description
csigler
2001-03-21 12:30:01 UTC
On Wed, Mar 21, 2001 at 04:24:39AM -0800, csigler@vt.edu wrote: > >How-To-Repeat: > `make install' in /usr/ports/x11/kdebase2 I can't reproduce your problem. Could you please send more detail on how you ran into a problem compiling kdm? -- wca Responsible Changed From-To: freebsd-bugs->will My port. On Wed, 21 Mar 2001, Will Andrews wrote:
> On Wed, Mar 21, 2001 at 04:24:39AM -0800, csigler@vt.edu wrote:
> > >How-To-Repeat:
> > `make install' in /usr/ports/x11/kdebase2
> I can't reproduce your problem. Could you please send more detail on
> how you ran into a problem compiling kdm?
Hi Will,
First, I realized I made a boo-boo after filing my 3 bug reports.
I assigned them to i386 instead of ports. I apologize :^(
Perhaps I don't have something installed with the "correct" version of
the header files? All I did was go into /usr/ports/x11/kde2 and do a
`make install' in there. The first time it died trying to compile auth.c
in kdebase2. Then it died trying to compile session.c. I have done
a CVSup of the ports tree a day or two ago, but I haven't done one of
the system to 4.x-STABLE.
This is also how I discovered the problems with the autoconf/automake
FreeBSD Linux compat support on i386 with ports/games/kdegames2,
ports/misc/kdeutils2, and ports/editors/koffice. I've got a build of
ports/net/kdenetwork2 going now. kdelibs2, kdebase2 (after my two tiny
fixes), and kdesupport2 did build. I think I have a working KDE
2.1 now except for the add-ons, but haven't had time to test it yet.
I'm out of the office where I'm building kde2 for the rest of the day.
Would you like me to e-mail you the errors I got from the compilation
of auth.c and session.c?
C
On Wed, Mar 21, 2001 at 10:26:57AM -0500, Clemmitt Sigler wrote: > First, I realized I made a boo-boo after filing my 3 bug reports. > I assigned them to i386 instead of ports. I apologize :^( Don't worry about it, I really don't mind. :-) > Perhaps I don't have something installed with the "correct" version of > the header files? All I did was go into /usr/ports/x11/kde2 and do a > `make install' in there. The first time it died trying to compile auth.c > in kdebase2. Then it died trying to compile session.c. I have done > a CVSup of the ports tree a day or two ago, but I haven't done one of > the system to 4.x-STABLE. I can't say anything about what the problem could be since I've never seen this before. > This is also how I discovered the problems with the autoconf/automake > FreeBSD Linux compat support on i386 with ports/games/kdegames2, > ports/misc/kdeutils2, and ports/editors/koffice. I've got a build of > ports/net/kdenetwork2 going now. kdelibs2, kdebase2 (after my two tiny > fixes), and kdesupport2 did build. I think I have a working KDE > 2.1 now except for the add-ons, but haven't had time to test it yet. I'm not sure what "FreeBSD Linux compat support on i386 with ports/games/kdegames2" means. To me, "Linux compat support" refers to the linuxulator in src/sys/i386/linux and related ports stuff. KDE2 has nothing to do with this. Nor do autoconf or automake. > I'm out of the office where I'm building kde2 for the rest of the day. > Would you like me to e-mail you the errors I got from the compilation > of auth.c and session.c? Please. Lots of stuff has header conflicts with KDE; in particular, I've found that ports/devel/pth and ports/devel/libgnugetopt install header files which cause compile problems, and I've added flags to correct these (not in CVS though, but that should come soon). -- wca On Wed, 21 Mar 2001, Will Andrews wrote: > I can't say anything about what the problem could be since I've never > seen this before. I think that's strange. The header #include's that were needed were very standard header files if I'm not mistaken. It should either cause everyone or no one problems I'd think *shrug* > I'm not sure what "FreeBSD Linux compat support on i386 with > ports/games/kdegames2" means. To me, "Linux compat support" refers to > the linuxulator in src/sys/i386/linux and related ports stuff. KDE2 has > nothing to do with this. Nor do autoconf or automake. I must be saying it wrong. I certainly don't know a lot about Linux compat support in FreeBSD -- I'm fairly new to FreeBSD.... What kept kdegames2, kdeutils2, and koffice (also had the same problem with kdenetwork2) from building were problems with linking to libpthreads-0.8.so, libc.so.6, and ld-linux.so.2 which are Linux compat libraries. The ./configure script didn't replace "@LIBPTHREAD@" in Makefile generated from Makefile.in with a linking declaration like "-lpthread -Wl,--rpath -Wl,/usr/compat/linux/lib". Also, it didn't put a $(LIBPTHREAD) anywhere in one of the "LIBS =" declarations further down. I tried adding all this junk to a bunch of Makefiles by hand and stuff built with warnings. I doubt it would have worked, and I abandoned the effort. It was linking against the FreeBSD libc.so.4 instead of the Linux compat libc.so.6. Maybe I'm misunderstanding how the Linux compat stuff works under FreeBSD. Here are the errors from auth.c and session.c compilation: ----------------------------------------------------------------------------- cc -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/local/include -I/usr/X11R6/include/qt2 -I. -I/usr/local/include -I/usr/local/include -D_GETOPT_H -D_THREAD_SAFE -O2 -O -pipe -D_THREAD_SAFE -pthread -c auth.c In file included from auth.c:94: /usr/include/net/if.h:158: field `ifru_addr' has incomplete type /usr/include/net/if.h:159: field `ifru_dstaddr' has incomplete type /usr/include/net/if.h:160: field `ifru_broadaddr' has incomplete type /usr/include/net/if.h:187: field `ifra_addr' has incomplete type /usr/include/net/if.h:188: field `ifra_broadaddr' has incomplete type /usr/include/net/if.h:189: field `ifra_mask' has incomplete type /usr/include/net/if.h:240: field `addr' has incomplete type /usr/include/net/if.h:241: field `dstaddr' has incomplete type gmake[3]: *** [auth.o] Error 1 gmake[3]: Leaving directory `/usr/ports/x11/kdebase2/work/kdebase-2.1/kdm' gmake[2]: *** [all-recursive] Error 1 gmake[2]: Leaving directory `/usr/ports/x11/kdebase2/work/kdebase-2.1/kdm' gmake[1]: *** [all-recursive] Error 1 gmake[1]: Leaving directory `/usr/ports/x11/kdebase2/work/kdebase-2.1' gmake: *** [all-recursive-am] Error 2 *** Error code 2 cc -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/local/include -I/usr/X11R6/include/qt2 -I. -I/usr/local/include -I/usr/local/include -D_GETOPT_H -D_THREAD_SAFE -O2 -O -pipe -D_THREAD_SAFE -pthread -c session.c session.c:101: conflicting types for `setgrent' /usr/include/grp.h:62: previous declaration of `setgrent' session.c:149: warning: initialization from incompatible pointer type gmake[3]: *** [session.o] Error 1 gmake[3]: Leaving directory `/usr/ports/x11/kdebase2/work/kdebase-2.1/kdm' gmake[2]: *** [all-recursive] Error 1 gmake[2]: Leaving directory `/usr/ports/x11/kdebase2/work/kdebase-2.1/kdm' gmake[1]: *** [all-recursive] Error 1 gmake[1]: Leaving directory `/usr/ports/x11/kdebase2/work/kdebase-2.1' gmake: *** [all-recursive-am] Error 2 *** Error code 2 ----------------------------------------------------------------------------- > Lots of stuff has header conflicts with KDE; in particular, I've found > that ports/devel/pth and ports/devel/libgnugetopt install header files > which cause compile problems, and I've added flags to correct these (not > in CVS though, but that should come soon). I'm fairly certain I don't have either of those installed, but maybe something I have installed has things messed up. I'll check that next. I appreciate the quick help :^) C On Wed, Mar 21, 2001 at 03:08:18PM -0500, Clemmitt Sigler wrote: > I think that's strange. The header #include's that were needed were > very standard header files if I'm not mistaken. It should either cause > everyone or no one problems I'd think *shrug* Order of the #include's and #define's can affect what actually gets included. Of course, that's just saying the obvious. :-) > I must be saying it wrong. I certainly don't know a lot about Linux > compat support in FreeBSD -- I'm fairly new to FreeBSD.... www.freebsd.org has more details on exactly what Linux compat means in the context of FreeBSD. Sorry I can't provide a URL off the top of my head; I'm sure it's extensively documented in the Handbook somewhere. > What kept kdegames2, kdeutils2, and koffice (also had the same problem > with kdenetwork2) from building were problems with linking to > libpthreads-0.8.so, libc.so.6, and ld-linux.so.2 which are > Linux compat libraries. The ./configure script didn't replace > "@LIBPTHREAD@" in Makefile generated from Makefile.in with > a linking declaration like > "-lpthread -Wl,--rpath -Wl,/usr/compat/linux/lib". Also, it > didn't put a $(LIBPTHREAD) anywhere in one of the "LIBS =" > declarations further down. I tried adding all this junk to a bunch > of Makefiles by hand and stuff built with warnings. I doubt it would > have worked, and I abandoned the effort. It was linking against > the FreeBSD libc.so.4 instead of the Linux compat libc.so.6. > Maybe I'm misunderstanding how the Linux compat stuff works > under FreeBSD. No. Normal compiling doesn't give GCC or LD access to the Linux compat libraries (*IF* you have them installed, doesn't matter anyways). KDE (and in fact most things that run on Linux) can use BSD libc.so just fine. Linuxulator stuff is only for Linux binaries. I'd say that less than 15% of FreeBSD boxes even need or use any Linux binaries on them. You really need to understand what the Linuxulator does and what it's for before doing much more with FreeBSD, because the way you seem to be thinking about it, you're liable to break lots of stuff (and give up on FreeBSD just because you couldn't figure out what the Linux compat stuff was for :-) :-). > Here are the errors from auth.c and session.c compilation: > > ----------------------------------------------------------------------------- > cc -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/local/include -I/usr/X11R6/include/qt2 > -I. -I/usr/local/include -I/usr/local/include -D_GETOPT_H -D_THREAD_SAFE > -O2 -O -pipe -D_THREAD_SAFE -pthread -c auth.c > In file included from auth.c:94: > /usr/include/net/if.h:158: field `ifru_addr' has incomplete type > /usr/include/net/if.h:159: field `ifru_dstaddr' has incomplete type > /usr/include/net/if.h:160: field `ifru_broadaddr' has incomplete type > /usr/include/net/if.h:187: field `ifra_addr' has incomplete type > /usr/include/net/if.h:188: field `ifra_broadaddr' has incomplete type > /usr/include/net/if.h:189: field `ifra_mask' has incomplete type > /usr/include/net/if.h:240: field `addr' has incomplete type > /usr/include/net/if.h:241: field `dstaddr' has incomplete type > gmake[3]: *** [auth.o] Error 1 > gmake[3]: Leaving directory `/usr/ports/x11/kdebase2/work/kdebase-2.1/kdm' > gmake[2]: *** [all-recursive] Error 1 > gmake[2]: Leaving directory `/usr/ports/x11/kdebase2/work/kdebase-2.1/kdm' > gmake[1]: *** [all-recursive] Error 1 > gmake[1]: Leaving directory `/usr/ports/x11/kdebase2/work/kdebase-2.1' > gmake: *** [all-recursive-am] Error 2 > *** Error code 2 > > cc -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/local/include -I/usr/X11R6/include/qt2 > -I. -I/usr/local/include -I/usr/local/include -D_GETOPT_H -D_THREAD_SAFE > -O2 -O -pipe -D_THREAD_SAFE -pthread -c session.c > session.c:101: conflicting types for `setgrent' > /usr/include/grp.h:62: previous declaration of `setgrent' > session.c:149: warning: initialization from incompatible pointer type > gmake[3]: *** [session.o] Error 1 > gmake[3]: Leaving directory `/usr/ports/x11/kdebase2/work/kdebase-2.1/kdm' > gmake[2]: *** [all-recursive] Error 1 > gmake[2]: Leaving directory `/usr/ports/x11/kdebase2/work/kdebase-2.1/kdm' > gmake[1]: *** [all-recursive] Error 1 > gmake[1]: Leaving directory `/usr/ports/x11/kdebase2/work/kdebase-2.1' > gmake: *** [all-recursive-am] Error 2 > *** Error code 2 These are pretty strange errors. I would appreciate it if you'd post full logs somewhere of all your builds (yeah, I guess that means you'll have to redo it and this time make sure you log the output). Judging by the compiler executions, it looks like you have the latest ports, so that's not an issue. > I'm fairly certain I don't have either of those installed, but maybe > something I have installed has things messed up. I'll check that > next. Don't worry about it; I doubt you have either installed given the error messages above. > I appreciate the quick help :^) Sure! -- wca On Wed, 21 Mar 2001, Will Andrews wrote:
> These are pretty strange errors. I would appreciate it if you'd post
> full logs somewhere of all your builds (yeah, I guess that means you'll
> have to redo it and this time make sure you log the output). Judging by
> the compiler executions, it looks like you have the latest ports, so that's
> not an issue.
I'm rebuilding/installing kdesupport2, kdelibs2, and kdebase2 from scratch
on my workstation this morning. I'll post the full logs when they're
done. I expect I'll run into the same problems with auth.c and session.c
again in building kdm since I haven't changed anything. We can go from
there.
C
On Wed, 21 Mar 2001, Will Andrews wrote: > These are pretty strange errors. I would appreciate it if you'd post > full logs somewhere of all your builds (yeah, I guess that means you'll > have to redo it and this time make sure you log the output). 1.) --> I got the same errors for compiling auth.c and session.c in the kdm subdirectory. I think this is "The Right Patch (TM)" for session.c, rather than the one I posted previously: ---------------------------------------------------------------------------- --- session.c Fri Mar 23 09:18:29 2001 +++ session.c.orig Fri Mar 23 09:18:30 2001 @@ -97,12 +97,10 @@ # include <sys/types.h> # include <grp.h> #else -#if !defined (__FreeBSD__) /* already defined in <grp.h>, included above */ /* should be in <grp.h> */ extern void setgrent(void); extern struct group *getgrent(void); extern void endgrent(void); -#endif #endif #ifdef USESHADOW ---------------------------------------------------------------------------- To look at the logs, please wget these files: http://labrador.cslab.vt.edu/~siglercm/files/kdesupport2_make_install_out1.txt.bz2 http://labrador.cslab.vt.edu/~siglercm/files/kdelibs2_make_install_out1.txt.bz2 http://labrador.cslab.vt.edu/~siglercm/files/kdebase2_make_install_out1.txt.bz2 http://labrador.cslab.vt.edu/~siglercm/files/kdebase2_make_install_out2.txt.bz2 http://labrador.cslab.vt.edu/~siglercm/files/kdebase2_make_install_out3.txt.bz2 I've looked for warnings and there are a fair number. I can't see any that look like they'd cause runtime errors, but I'm not certain. 2.) --> The problem I've run into with auth.c (stating the obvious) is that <sys/socket.h> doesn't get #include'd in <net/if.h>. The problem I've run into with session.c (again stating the obvious :^) is that setgrent, getgrent, and endgrent get redefined because <grp.h> is already #included above. You can look at the grp.h, net/if.h, and sys/socket.h files from my system by wget'ing: http://labrador.cslab.vt.edu/~siglercm/files/grp.h http://labrador.cslab.vt.edu/~siglercm/files/net_if.h http://labrador.cslab.vt.edu/~siglercm/files/sys_socket.h 3.) --> After building kdesupport2, kdelibs2, and kdebase2, startkde still doesn't run :^( The symptom is that the splash screen appears, but it hangs at "Initializing Peripherals." I've got two logs from startkde, but since there are no debug symbols the core dump from the second one doesn't help much: http://labrador.cslab.vt.edu/~siglercm/files/startx_kde2.1_error_out1.txt http://labrador.cslab.vt.edu/~siglercm/files/startx_kde2.1_error_out2.txt I'm guessing this is due to a faulty build on my system. Maybe I'll have to rebuild stuff like the qt libraries as well and look at their build logs to trace this down. But, frankly, I'm not sure it's worth the effort. 4.) --> My system configuration: I did a fresh install of FreeBSD 4.2-RELEASE from the i386 4.2-install.iso dated "Dec 7 22:00". I didn't install the Xprog.tgz tarball because I didn't realize I'd be trying to build any X Windows ports. I untarred that into /usr. I CVSuped the ports tree a couple of times when I ran into problems building the KDE 2.1 ports. That's all I've done besides install some binary packages. It's a pretty vanilla system, I think. I should probably do a CVSup to -STABLE and rebuild the system and kernel, I suppose. --- Please let me know if I can be of help in any way, and thanks :^) C State Changed From-To: open->closed Try another build with the latest KDE2 ports, and make sure you clean all the old stuff out (deinstall included) before starting with them. |