OpenBSD Kernel kompilieren -> segmentation fault

radiohead

Well-Known Member
Hallo,

ich versuche gerade mein OpenBSD auf den aktuellen Stand zu bringen und habe dafür meine sourcen in /usr/src auf 4.3-stable gebracht. /usr/src ist bei mir ein nfs mount, falls das wichtig ist.

Nun bin ich nach FAQ vorgegangen und bin beim Kernel bau, den ich mit "make clean && make depend && make" angestossen habe. Er bricht aber immer an der selben Stelle mit folgendem Fehler ab:

Code:
cc  -Werror -Wall -Wstrict-prototypes -Wmissing-prototypes  -Wno-uninitialized -Wno-format -Wno-main  -Wstack-larger-than-2047 -fno-builtin-printf -fno-builtin-log -O2 -pipe -nostdinc -I. -I/usr/src/sys/arch/i386/compile/GENERIC/../../../.. -I/usr/src/sys/arch/i386/compile/GENERIC/../../../../arch -DDDB -DDIAGNOSTIC -DKTRACE -DACCOUNTING -DKMEMSTATS -DPTRACE -DCRYPTO -DSYSVMSG -DSYSVSEM -DSYSVSHM -DUVM_SWAP_ENCRYPT -DCOMPAT_43 -DLKM -DFFS -DFFS2 -DFFS_SOFTUPDATES -DUFS_DIRHASH -DQUOTA -DEXT2FS -DMFS -DXFS -DTCP_SACK -DTCP_ECN -DTCP_SIGNATURE -DNFSCLIENT -DNFSSERVER -DCD9660 -DUDF -DMSDOSFS -DFIFO -DPORTAL -DINET -DALTQ -DINET6 -DIPSEC -DPPP_BSDCOMP -DPPP_DEFLATE -DMROUTING -DBOOT_CONFIG -DUSER_PCICONF -DKVM86 -DUSER_LDT -DAPERTURE -DCOMPAT_SVR4 -DCOMPAT_IBCS2 -DCOMPAT_LINUX -DCOMPAT_FREEBSD -DCOMPAT_BSDOS -DCOMPAT_AOUT -DPROCFS -DPCIVERBOSE -DEISAVERBOSE -DUSBVERBOSE -DWSDISPLAY_COMPAT_USL -DWSDISPLAY_COMPAT_RAWKBD -DWSDISPLAY_DEFAULTSCREENS="6" -DWSDISPLAY_COMPAT_PCVT -DONEWIREVERBOSE -D_KERNEL -Di386  -c /usr/src/sys/arch/i386/compile/GENERIC/../../../../dev/ic/wdc.c
cc  -Werror -Wall -Wstrict-prototypes -Wmissing-prototypes  -Wno-uninitialized -Wno-format -Wno-main  -Wstack-larger-than-2047 -fno-builtin-printf -fno-builtin-log -O2 -pipe -nostdinc -I. -I/usr/src/sys/arch/i386/compile/GENERIC/../../../.. -I/usr/src/sys/arch/i386/compile/GENERIC/../../../../arch -DDDB -DDIAGNOSTIC -DKTRACE -DACCOUNTING -DKMEMSTATS -DPTRACE -DCRYPTO -DSYSVMSG -DSYSVSEM -DSYSVSHM -DUVM_SWAP_ENCRYPT -DCOMPAT_43 -DLKM -DFFS -DFFS2 -DFFS_SOFTUPDATES -DUFS_DIRHASH -DQUOTA -DEXT2FS -DMFS -DXFS -DTCP_SACK -DTCP_ECN -DTCP_SIGNATURE -DNFSCLIENT -DNFSSERVER -DCD9660 -DUDF -DMSDOSFS -DFIFO -DPORTAL -DINET -DALTQ -DINET6 -DIPSEC -DPPP_BSDCOMP -DPPP_DEFLATE -DMROUTING -DBOOT_CONFIG -DUSER_PCICONF -DKVM86 -DUSER_LDT -DAPERTURE -DCOMPAT_SVR4 -DCOMPAT_IBCS2 -DCOMPAT_LINUX -DCOMPAT_FREEBSD -DCOMPAT_BSDOS -DCOMPAT_AOUT -DPROCFS -DPCIVERBOSE -DEISAVERBOSE -DUSBVERBOSE -DWSDISPLAY_COMPAT_USL -DWSDISPLAY_COMPAT_RAWKBD -DWSDISPLAY_DEFAULTSCREENS="6" -DWSDISPLAY_COMPAT_PCVT -DONEWIREVERBOSE -D_KERNEL -Di386  -c /usr/src/sys/arch/i386/compile/GENERIC/../../../../dev/ic/aic7xxx.c
/usr/src/sys/dev/ic/aic7xxx.c: In function `ahc_busy_tcl':
/usr/src/sys/dev/ic/aic7xxx.c:5048: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
*** Error code 1

Stop in /usr/src/sys/arch/i386/compile/GENERIC (line 916 of makefile).

Jemand ne Ahnung, woran das liegen kann und wie ich es eingrenzen kann?
 
... ich hatte mal Probleme, weil irgendwas auf dem Server schief gelaufen war, von dem ich die Source gezogen hatte. Mir hatte es dann geholfen, die Sourcen nochmal von einem anderen Server zu ziehen. Danach lief das Kompilieren glatt durch.

Ansonsten sagen mir Deine Fehlermeldungen nichts, sorry:o.

... hmm, es kann auch nicht sein, dass Du zufällig die falschen Sourcen gezogen hast (von -current)?
 
Nein, habe schon die richtigen Sourcen. Habe aber gerade mal über google einen Thread gefunden wo jemand ein ähnliches Problem hatte und ein User gab den Tipp mit zu wenig freiem RAM. Meine Alix lief schon sehr lang und ich hatte von den 256MB "nur" noch ca 32MB frei. Habe die Maschine neugestartet und jetzt kompiliert der Kernel sauber durch...
 
Guten morgen,

der Kernel ist also nun kompiliert und über Nacht wollte ich dann ein make build durchlaufen lassen. Das ist jetzt aber auch nicht durchgelaufen. :(

Code:
building shared object c library
ranlib libc_pic.a
building shared c library (version 43.0)
cc -shared -fpic  -o libc.so.43.0  `lorder accept.so access.so acct.so adjfreq.so adjtime.so bind.so chdir.so chflags.so chmod.so chown.so chroot.so clock_gettime.so clock_settime.so clock_getres.so close.so closefrom.so connect.so dup.so dup2.so execve.so fchdir.so fchflags.so fchmod.so fchown.so fcntl.so fhopen.so fhstat.so fhstatfs.so flock.so fpathconf.so fstat.so fstatfs.so fsync.so futimes.so getdirentries.so getegid.so geteuid.so getfh.so getfsstat.so getgid.so getgroups.so getitimer.so getpeereid.so getpeername.so getpgid.so getpgrp.so getpid.so getppid.so getpriority.so getresgid.so getresuid.so getrlimit.so getrusage.so getsid.so getsockname.so getsockopt.so gettimeofday.so getuid.so issetugid.so ioctl.so kill.so kevent.so kqueue.so ktrace.so lchown.so lfs_bmapv.so lfs_markv.so lfs_segclean.so lfs_segwait.so link.so listen.so lstat.so madvise.so mincore.so minherit.so mkdir.so mkfifo.so mknod.so mlock.so mlockall.so mount.so mprotect.so msgctl.so msgget.so msgrcv.so msgsnd.so msync.so munlock.so munlockall.so munmap.so nanosleep.so nfssvc.so open.so pathconf.so pipe.so poll.so profil.so quotactl.so read.so readlink.so readv.so reboot.so recvfrom.so recvmsg.so rename.so revoke.so rmdir.so select.so semget.so semop.so sendmsg.so sendto.so setegid.so seteuid.so setgid.so setgroups.so setitimer.so setpgid.so setpriority.so setregid.so setreuid.so setresgid.so setresuid.so setrlimit.so setsid.so setsockopt.so settimeofday.so setuid.so shmat.so shmctl.so shmdt.so shmget.so shutdown.so sigaction.so sigaltstack.so socket.so socketpair.so stat.so statfs.so swapctl.so symlink.so sync.so sysarch.so umask.so unlink.so unmount.so utimes.so wait4.so write.so writev.so xfspioctl.so __semctl.so __syscall.so __sysctl.so __getcwd.so sched_yield.so getthrid.so thrsleep.so thrwakeup.so threxit.so thrsigdivert.so _getlogin.so _setlogin.so _ptrace.so _exit.so bt_close.so bt_conv.so bt_debug.so bt_delete.so bt_get.so bt_open.so bt_overflow.so bt_page.so bt_put.so bt_search.so bt_seq.so bt_split.so bt_utils.so db.so hash.so hash_bigkey.so hash_buf.so hash_func.so hash_log2.so hash_page.so ndbm.so mpool.so rec_close.so rec_delete.so rec_get.so rec_open.so rec_put.so rec_search.so rec_seq.so rec_utils.so dlfcn_stubs.so creat.so getdtablesize.so gethostid.so getwd.so killpg.so sethostid.so setpgrp.so sigcompat.so alarm.so assert.so auth_subr.so authenticate.so basename.so clock.so closedir.so confstr.so ctermid.so ctype_.so daemon.so devname.so dirname.so disklabel.so elf_hash.so err.so errx.so errlist.so errno.so exec.so fnmatch.so frexp.so fstab.so ftok.so fts.so ftw.so getbsize.so getcap.so getcwd.so getdomainname.so getgrent.so getgrouplist.so gethostname.so getloadavg.so getlogin.so getmntinfo.so getnetgrent.so getpagesize.so getpwent.so getttyent.so getusershell.so glob.so initgroups.so isatty.so isctype.so isfdtype.so lockf.so login_cap.so nice.so nlist.so nftw.so opendir.so pause.so popen.so psignal.so pw_dup.so pwcache.so raise.so readdir.so readpassphrase.so rewinddir.so scandir.so seekdir.so setdomainname.so sethostname.so setjmperr.so setmode.so setproctitle.so siginterrupt.so siglist.so signal.so signame.so sigsetops.so sleep.so strtofflags.so sysconf.so sysctl.so syslog.so telldir.so time.so times.so timezone.so tolower_.so ttyname.so ttyslot.so toupper_.so ualarm.so uname.so unvis.so usleep.so utime.so valloc.so vis.so wait.so wait3.so waitpid.so warn.so warnx.so vwarn.so vwarnx.so verr.so verrx.so _sys_errlist.so _sys_nerr.so _sys_siglist.so _setjmp.so alloca.so fabs.so infinity.so isinf.so isnan.so ldexp.so modf.so setjmp.so sigsetjmp.so flt_rounds.so fpgetmask.so fpgetround.so fpgetsticky.so fpsetmask.so fpsetround.so fpsetsticky.so divsi3.so fixdfsi.so fixunsdfsi.so udivsi3.so cast.so crypt.so crypt2.so md5crypt.so arc4random.so blowfish.so bcrypt.so skipjack.so gmon.so mcount.so md4.so md5.so rmd160.so sha1.so sha2.so md4hl.so md5hl.so rmd160hl.so sha1hl.so sha256hl.so sha384hl.so sha512hl.so _def_messages.so _def_monetary.so _def_numeric.so _def_time.so localeconv.so nl_langinfo.so setlocale.so iswctype.so mbrtowc_sb.so multibyte_sb.so __mb_cur_max.so wcstod.so wcstol.so wcstoul.so wcstoll.so wcstoull.so setrunelocale.so runeglue.so rune.so runetable.so ___runetype_mb.so _wctrans.so base64.so freeaddrinfo.so gai_strerror.so getaddrinfo.so gethostnamadr.so getifaddrs.so getnameinfo.so getnetbyaddr.so getnetbyname.so getnetent.so getnetnamadr.so getproto.so getprotoent.so getprotoname.so getservbyname.so getservbyport.so getservent.so getrrsetbyname.so herror.so if_indextoname.so if_nameindex.so if_nametoindex.so inet_addr.so inet_lnaof.so inet_makeaddr.so inet_neta.so inet_netof.so inet_network.so inet_net_ntop.so inet_net_pton.so inet_ntoa.so inet_ntop.so inet_pton.so linkaddr.so net_addrcmp.so nsap_addr.so rcmd.so rresvport.so recv.so res_comp.so res_data.so res_debug.so res_debug_syms.so res_init.so res_mkquery.so res_query.so res_random.so res_send.so send.so sethostent.so ethers.so rcmdsh.so ip6opt.so rthdr.so vars6.so htonl.so htons.so ntohl.so ntohs.so catclose.so catgets.so catopen.so _catclose.so _catgets.so _catopen.so ohash_create_entry.so ohash_delete.so ohash_do.so ohash_entries.so ohash_enum.so ohash_init.so ohash_interval.so ohash_lookup_interval.so ohash_lookup_memory.so ohash_qlookup.so ohash_qlookupi.so adddi3.so anddi3.so ashldi3.so ashrdi3.so cmpdi2.so divdi3.so fixdfdi.so fixsfdi.so fixunsdfdi.so fixunssfdi.so floatdidf.so floatdisf.so floatunsdidf.so iordi3.so lshldi3.so lshrdi3.so moddi3.so muldi3.so negdi2.so notdi2.so qdivrem.so subdi3.so ucmpdi2.so udivdi3.so umoddi3.so xordi3.so regcomp.so regerror.so regexec.so regfree.so auth_none.so auth_unix.so authunix_prot.so bindresvport.so clnt_generic.so clnt_perror.so clnt_raw.so clnt_simple.so clnt_tcp.so clnt_udp.so rpc_dtablesize.so get_myaddress.so getrpcent.so getrpcport.so pmap_clnt.so pmap_getmaps.so pmap_getport.so pmap_prot.so pmap_prot2.so pmap_rmt.so rpc_prot.so rpc_commondata.so rpc_callmsg.so svc.so svc_auth.so svc_auth_unix.so svc_raw.so svc_run.so svc_simple.so svc_tcp.so svc_udp.so xdr.so xdr_array.so xdr_float.so xdr_mem.so xdr_rec.so xdr_reference.so xdr_stdio.so asprintf.so clrerr.so fclose.so fdopen.so feof.so ferror.so fflush.so fgetc.so fgetln.so fgetpos.so fgets.so fileno.so findfp.so flags.so fopen.so fprintf.so fpurge.so fputc.so fputs.so fread.so freopen.so fscanf.so fseek.so fsetpos.so ftell.so funopen.so fvwrite.so fwalk.so fwrite.so getc.so getchar.so gets.so getw.so makebuf.so mktemp.so perror.so printf.so putc.so putchar.so puts.so putw.so refill.so remove.so rewind.so rget.so scanf.so setbuf.so setbuffer.so setvbuf.so snprintf.so sprintf.so sscanf.so stdio.so tempnam.so tmpfile.so tmpnam.so ungetc.so vasprintf.so vfprintf.so vfscanf.so vprintf.so vscanf.so vsnprintf.so vsprintf.so vsscanf.so wbuf.so wsetup.so flockfile.so __svfscanf.so fgetwc.so fgetws.so fputwc.so fputws.so fwide.so getwc.so getwchar.so putwc.so putwchar.so ungetwc.so a64l.so abort.so atexit.so atoi.so atof.so atol.so atoll.so bsearch.so calloc.so cfree.so exit.so ecvt.so gcvt.so getenv.so getopt_long.so getsubopt.so hcreate.so heapsort.so imaxabs.so imaxdiv.so l64a.so llabs.so lldiv.so lsearch.so malloc.so merge.so putenv.so qsort.so radixsort.so rand.so random.so realpath.so setenv.so strtoimax.so strtod.so strtol.so strtoll.so strtonum.so strtoul.so strtoull.so strtoumax.so system.so tfind.so tsearch.so _rand48.so drand48.so erand48.so jrand48.so lcong48.so lrand48.so mrand48.so nrand48.so seed48.so srand48.so qabs.so qdiv.so _Exit.so abs.so div.so labs.so ldiv.so insque.so remque.so bm.so memccpy.so memrchr.so strcasecmp.so strcasestr.so strcoll.so strdup.so strerror.so strerror_r.so strlcat.so strmode.so strsignal.so strtok.so strxfrm.so wcscat.so wcschr.so wcscmp.so wcscpy.so wcscspn.so wcslcat.so wcslcpy.so wcslen.so wcsncat.so wcsncmp.so wcsncpy.so wcspbrk.so wcsrchr.so wcsspn.so wcsstr.so wcstok.so wcswcs.so wcswidth.so wmemchr.so wmemcmp.so wmemcpy.so wmemmove.so wmemset.so bcmp.so bcopy.so bzero.so ffs.so index.so memchr.so memcmp.so memset.so rindex.so strcat.so strcmp.so strcpy.so strcspn.so strlcpy.so strlen.so strncat.so strncmp.so strncpy.so strpbrk.so strsep.so strspn.so strstr.so swab.so memcpy.so memmove.so strchr.so strrchr.so cfgetispeed.so cfgetospeed.so cfmakeraw.so cfsetispeed.so cfsetospeed.so cfsetspeed.so tcdrain.so tcflow.so tcflush.so tcgetattr.so tcgetpgrp.so tcsendbreak.so tcsetattr.so tcsetpgrp.so unithread_malloc_lock.so unithread_mutex.so unithread_tag.so asctime.so difftime.so localtime.so strftime.so strptime.so Ovfork.so brk.so cerror.so exect.so fork.so rfork.so sbrk.so sigpending.so sigprocmask.so sigreturn.so sigsuspend.so syscall.so ftruncate.so lseek.so mquery.so mmap.so ptrace.so semctl.so truncate.so timer_create.so timer_delete.so timer_getoverrun.so timer_gettime.so timer_settime.so pread.so preadv.so pwrite.so pwritev.so stack_protector.so ypmatch_cache.so yp_bind.so yp_get_default_domain.so yp_first.so yp_all.so yp_order.so yp_master.so yp_maplist.so yperr_string.so ypprot_err.so _yp_check.so xdr_domainname.so xdr_keydat.so xdr_mapname.so xdr_peername.so xdr_valdat.so xdr_ypbind_binding.so xdr_ypbind_resp.so xdr_ypbind_resptype.so xdr_ypbind_setdom.so xdr_ypmaplist.so xdr_ypreq_key.so xdr_ypreq_nokey.so xdr_ypresp_all.so xdr_ypresp_key_val.so xdr_ypresp_maplist.so xdr_ypresp_master.so xdr_ypresp_order.so xdr_ypresp_val.so xdr_ypstat.so|tsort -q` 
_exit.so(.text+0x0): In function `_exit':
: multiple definition of `_thread_sys__exit'
_Exit.so(.text+0x0): first defined here
collect2: ld returned 1 exit status
*** Error code 1

Stop in /usr/src/lib/libc (line 207 of /usr/share/mk/bsd.lib.mk).
*** Error code 1

Stop in /usr/src/lib (line 48 of /usr/share/mk/bsd.subdir.mk).
*** Error code 1

Stop in /usr/src (line 73 of makefile).

Kann man da jemand weiterhelfen?
 
Kann das nicht die gleiche/selbe Ursache sein? Hast du evtl. eine Maschine, auf der du ein Release erstellen könntest? Ansonsten könnte ich mal nachsehen, dass ich eines erstelle (sofern auf der ALIX i386 läuft..)

Gruß
 
das sollte eigentlich nichts mit dem wenigen an RAM zu tun haben, da ich meine stable-releases hier auch auf nem P-III mit 256 RAM baue. ich würde auch eher tippen, dass die sources nicht sauber angekommen sind oder auf dem server schon nicht ganz sauber lagen. ich würd versuchen, sie nochmal zu ziehen bzw. nen anderen server zu nehmen
 
Ich gebe bei dem Update ja gar kein Server mehr mit an. Wie kann ich ihm dann sagen, einen neuen zu verwenden und welchen würdest du empfehlen?
 
So, ich hole mir nun so die sources neu:

Code:
cd /usr
cvs -qd anoncvs@anoncvs.ca.openbsd.org:/cvs get -rOPENBSD_4_3 -P src

Dann versuche ich es noch einmal und melde mich dann...
 
du kannst als root auch die CVSROOT setzen. die seiten auf der homepage sind sehr ausführlich, was das thema anoncvs insgesamt und openbsd aus den quellen zu aktualisieren im speziellen angeht. ich persönlich hole mir die sourcen von anoncvs.de.openbsd.org. die mirrors findest du auch auf der homepage
 
Ich hatte auch immer die sourcen von dem mirror den du nennst. Heute nacht dann mal den aus CA genommen. Jetzt kam er schon weiter. Hat auch fast 10h kompiliert und ist dann abgebrochen. Den Fehler habe ich leider nicht mehr, aber der war genauso wenig aussagekräftig...

Scheint also doch irgendwie mit dem RAM oder mit der Alix selbst zusammenzuhängen...
 
ich hab hier noch das release von nem aktuellen stable rumfliegen, falls du interesse hast kann ich dir das bereitstellen, schick mir dann einfach ne PN
 
Danke für das Angebot. Es ist ja nur nicht ganz der Sinn der Sache. Ich glaube ich werde mir bald mal pfSense oder so anschauen, damit ich nicht immer so viel basteln muss. Ich hab in der Firma schon genug damit zu tun, das muss zu Hause nicht auch noch so sein ;)
 
ich hab mit meinen openbsd-kisten eigentlich gar nichts zu basteln. installieren, läuft. hin und wieder mal nen update, was sich als problemlos erweist und gut ist. zu basteln gibts da während des betriebs eigentlich nichts. vor allem nicht, bei meinem router @home
 
Du siehst ja schon, das es hier nicht ohne Probleme zu updaten geht. Habe die Sourcen jetzt von verschiedenen Servern. Ich denke es wird schon irgendwie mit dem Speicher der Alix zusammenhängen...
 
Bei einem anderen System muss ich aber nicht unbedingt kompilieren und meinen RAM vollhauen. Da wird es dann via binary Update gemacht und das geht dann auch ;)
 
ich hab hier noch das release von nem aktuellen stable rumfliegen, falls du interesse hast kann ich dir das bereitstellen, schick mir dann einfach ne PN

Heißt das, ich kann mir hier auch einfach ein stable Release in meiner VM bauen, die Alix dann via PXE booten und dann einfach Update wählen? Klappt das so, dass er dann auch alle meine Configs beibehält? Das wäre ja ganz nice, dann würde ich hier ja einfach mal ein release bauen...
 
ja, genau das heisst das. ich würd das aber nicht per PXE-boot machen. einfach auf der alix bsd.rd booten und gut is ;)

EDIT: wenn dir die alix natürlich die grätsche während der installation macht wegen kaputter hardware beim beschreiben, kanns sein, dass deine kiste nicht mehr hoch kommt
 
Hmm, das habe ich noch nicht gemacht. Kannst du mir mal kurz genauer sagen, wie ich dort die bsd.rd boote und wie ich dann das Update mache? Oder hast du einen Link für sowas? Geht das dann weiter über IP?
 
am boot-prompt gibst du "bsd.rd" ein (der sollte in / liegen), das ist der ramdisk-kernel, der auch bei ner cd-installation gestartet wird und den man in die kisten per pxe reindrückt. danach dann (u)pgrade auswählen und wie gewohnt die einzelnen schritte druchlaufen; sollte problemlos gehen. den release stellst du per ftp oder http oder nfs oder wie auch immer im netz bereit und lässt deine alix das saugen und installieren, fertig.
 
Ach, wie super! Das teste ich dann mal heute abend, wäre ja viel leichter. Trotzdem muss ich meine Alix via Serial anschließen, denn ich habe ja sonst kein Bild :(
 
Zurück
Oben