|
|
|
| |||||||||
![]() |
|
|
«
Previous Thread
|
Next Thread
»
|
Thread Tools | Search this Thread | Rate Thread | Display Modes |
|
|
|
1200+ fellow developers rate and compare features of the top IDEs, like Visual Studio, Eclipse, RAD, Delphi and others, across 13 categories. Enjoy this FREE Download of the IDE User Satisfaction Study by Evans Data Corporation. Download Now!
|
|
#1
|
||||
|
||||
|
problem with make buildworld
I cvsup'ed everything, went to /usr/src, and did a `make buildworld` ... as a result, it ran for a while, then halted with this message:
Code:
cc -O -pipe -D_open=open -DIN_GCC -DHAVE_CONFIG_H -DPREFIX=\"/usr/obj/usr/src/i386/usr\" -I/usr/obj/usr/src/i386/usr/src/gnu/usr.bin/cc/cc_fbsd/../cc_tools -I/usr/src/gnu/usr.bin/cc/cc_fbsd/../cc_tools -I/usr/src/gnu/usr.bin/cc/cc_fbsd/../../../../contrib/gcc.295 -I/usr/src/gnu/usr.bin/cc/cc_fbsd/../../../../contrib/gcc.295/config -c /usr/src/gnu/usr.bin/cc/cc_fbsd/../../../../lib/libc/gen/getobjformat.c -o getobjformat.o cc -O -pipe -D_open=open -DIN_GCC -DHAVE_CONFIG_H -DPREFIX=\"/usr/obj/usr/src/i386/usr\" -I/usr/obj/usr/src/i386/usr/src/gnu/usr.bin/cc/cc_fbsd/../cc_tools -I/usr/src/gnu/usr.bin/cc/cc_fbsd/../cc_tools -I/usr/src/gnu/usr.bin/cc/cc_fbsd/../../../../contrib/gcc.295 -I/usr/src/gnu/usr.bin/cc/cc_fbsd/../../../../contrib/gcc.295/config -c /usr/src/gnu/usr.bin/cc/cc_fbsd/../../../../lib/libc/stdio/mktemp.c -o mktemp.o /usr/src/gnu/usr.bin/cc/cc_fbsd/../../../../lib/libc/stdio/mktemp.c:38: syntax error before string constant /usr/src/gnu/usr.bin/cc/cc_fbsd/../../../../lib/libc/stdio/mktemp.c:38: warning: data definition has no type or storage class *** Error code 1 Stop in /usr/src/gnu/usr.bin/cc/cc_fbsd. *** Error code 1 Stop in /usr/src/gnu/usr.bin/cc. *** Error code 1 Stop in /usr/src. *** Error code 1 Stop in /usr/src. *** Error code 1 Stop in /usr/src. bash-2.05# exit Any thoughts would be appreciated!! TIA, Brett |
|
#2
|
|||
|
|||
|
Did you empty the /usr/obj by rm -rf? Also, make clean in /usr/src? If not, then try both of them then do buildworld again to see if it will working.. If it doesn't works then I have no idea..
|
|
#3
|
|||
|
|||
|
>> Also, make clean in /usr/src?
Should be make cleandir instead. >> I cvsup'ed everything, went to /usr/src You need to provide more details: 1) Current branch+version from uname -r 2) Your target branch+version 3) How many times have you cvsup'd your /usr/src 4) Did you have an empty /usr/src/ prior to running cvsup? 5) And of course, your exact procedures |
|
#4
|
||||
|
||||
|
Ok, tried the make clean, make cleandir, made sure the /usr/obj was cleaned out. I also re-cvsup'd src-all.
Quote:
1) current branch is 4.4 RELEASE 2) Target branch is 4.5 RELEASE 3) I have cvsup'd /usr/src about 3 times 4) yes /usr/src was empty before running cvsup 5) After I cvsup'd everything, I cd'd into /usr/source as root and ran `make buildworld`. I can send the entire typescript file I made, but the error occurs just like the original post. Thanks! Brett |
|
#5
|
|||
|
|||
|
1) ok
2) Why not 4.5-STABLE? For 4.5-RELEASE the cvs tag should be RELENG_4_5. 4) Everytime you cvsup your src from scratch you also need to remove your /usr/sup/src-all directory. 5) You need to recompile your kernel first. Say you are upgrading from 4.5-STABLE to the latest 4.5-STABLE then you probably don't need to recompile a kernel because the src changes should be minimal enough. For 4.5-RELEASE or 4.4-STABLE to 4.5-STABLE you definitely need to rebuild a kernel so it understands the new userland/changes. Lastly, you need to know how to recompile a custom kernel prior to buildworld. If you don't, buildworld is not for you. Just so you know, just to build a custom kernel can take dozen trials and many days to get it right. Here's what you need to do: 1) rm -rf /usr/sup/* /usr/src/* 2) Install all-src from CD (4.4-RELEASE) 3) Just forget cvsup, recompile a custom kernel first 4) When you're happy with your custom kernel, try cvsup your src now (you don't need to rm -rf /usr/src/*) 5) Recompile a custom kernel again (check GENERIC and LINT for new changes) 6) Reboot then buildworld Why must I compile a custom kernel before cvsup? Like I said, compiling a custom kernel takes dozen trials (you will likely see some errors) and buildworld as well may give you some headaches. That said, when it comes to troubleshooting the problems, it's better off to isolate the two, and just to make your life easier. |
|
#6
|
||||
|
||||
|
I appreciate the continued help.
Ok, I got the 4.4-RELEASE source on. Should I do the make buildkernel/make installkernel stuff, or should I go about manually doing it, ie make/config/make depend, etc? I know the make buildkernel is used in conjuction with make buildworld ... Thanks, Brett |
|
#7
|
|||
|
|||
|
>> Should I do the make buildkernel/make installkernel stuff
I hate it very much when FreeBSD keeps reinventing the wheel like this. Buildworld/recompile a kernel should be straight forward enough (not changing from version to version) like NetBSD/OpenBSD. Everytime I do a buildworld on FreeBSD I still have to read the latest handbook and see if any new way of doing that, that is so inconsistent. >> or should I go about manually doing it, ie make/config/make depend, etc? You MUST do this way: config,make depend, make and make install. |
|
#8
|
||||
|
||||
|
if its not one thing, its another
Ok, cvsup'd the 4.4-RELEASE, recompiled the kernel successfully, and cvsup'd 4.5-RELEASE.
I then did a `build world`, and it ran for a good long while until I got: ===> etc/sendmail make: don't know how to make freebsd.mc. Stop *** Error code 2 Stop in /usr/src/etc. *** Error code 1 Stop in /usr/src/etc. *** Error code 1 . . . thanks, Brett |
|
#9
|
|||
|
|||
|
>> Is this a typo that is the old way no
First off I could be wrong, I am too lazy to read the handbook right at this moment. You'd use the NEW way (KERNCONF) only if your base system doesn't match your /usr/src (for instance, after a cvsup). That said, when your base system is 4.4-RELEASE and your /usr/src is the exact all-src from 4.4-RELEASE CD, don't use the NEW way. >> cvsup'd the 4.4-RELEASE, recompiled the kernel successfully, and cvsup'd 4.5-RELEASE. What? Can you tell us once again? When you say cvsup'd, that's from what uname -r to what cvs tag? >> Stop in /usr/src/etc You (your current working directory), when building world, should never be cd'd to /usr/src/etc in the first place, because /usr/src/etc is untouched during buildworld. |
|
#10
|
||||
|
||||
|
cvsup'd from 4.4-RELEASE to 4.5-RELEASE
Brett |
|
#11
|
|||
|
|||
|
>> Why do you go for RELEASE?
I too wonder why. When FreeBSD users talking about cvsup the src, 99% of the time they are tracking RELENG4 (4.X-STABLE), the -STABLE branch. cvsup from whatever uname -r to a RELEASE branch is just something I have never heard of, though it's possible but no reason to. |
|
#12
|
||||
|
||||
|
Chalk it up to inexperience I guess. Thats why I appreciate the insight and help.
|
|
#13
|
|||
|
|||
|
Quote:
Both ways are still valid. However, you need to know the differences between them and when to use them. The "old" way: Code:
cd /usr/src/sys/i386/conf/ cp GENERIC KERNEL ee KERNEL /sbin/config KERNEL cd ../../compile/KERNEL make depend make make install This will build your new kernel using the build tools already installed on your system. This uses your existing, already installed and running build environment. The "new" way: Code:
cd /usr/src/sys/i386/conf/ cp GENERIC KERNEL ee KERNEL cd /usr/src make KERNCONF=KERNEL buildworld make KERNCONF=KERNEL buildkernel make KERNCONF=KERNEL installkernel [reboot into single-user mode] make KERNCONF=KERNEL installworld mergemaster [start multi-user mode] The KERNCONF= isn't really needed for the installworld target, but it doesn't hurt to keep things consistent. Also, if you are just building a kernel, the last two steps aren't needed. This will build your new kernel using the new build tools located in /usr/obj/usr/src/. Thus, you get a new kernel that's in sync with your new world, built with the new tools. Thus, to just re-build your kernel, use the first method. If you are re-building your world, plus your kernel, then use the second method.
__________________
Linux is for those who hate Windows. FreeBSD is for those who love UNIX. ------- Have you read The Handbook yet? How about The FAQ? Have you searched the mailing lists? Or read any of the man pages? Have you searched the web for BSD resources? In short, have you done your homework yet?
Last edited by phoenix_rizzen : May 13th, 2002 at 03:32 AM. |
|
#14
|
|||
|
|||
|
Quote:
Obviously you don't work with FreeBSD servers, nor do you hang around with people who do so. 99% of admins CVSup their servers to the most stable/tested codebas: -RELEASE, or the new security branch (RELENG_4_4 and RELENG_4_5). Few run -STABLE on production machines unless they need specific software/hardware support only available in -STABLE at that moment. Casual home users who aren't developers should be running -RELEASE or RELENG_4_5, NOT -STABLE. |
|
#15
|
|||
|
|||
|
Quote:
|