Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 222809 - make oldconfig in 2.6.25.4 seems to be buggy
Summary: make oldconfig in 2.6.25.4 seems to be buggy
Status: RESOLVED WORKSFORME
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Core system (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Gentoo Kernel Bug Wranglers and Kernel Maintainers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-05-19 13:52 UTC by ivo welch
Modified: 2008-05-21 18:51 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
diff of 2.6.25.2 and 2.6.25.4 config files (config.diff,31.31 KB, text/plain)
2008-05-19 17:27 UTC, ivo welch
Details
the original 2.6.25.2 file (config-2.6.25.2.gz,11.54 KB, text/plain)
2008-05-20 18:19 UTC, ivo welch
Details

Note You need to log in before you can comment on or make changes to this bug.
Description ivo welch 2008-05-19 13:52:42 UTC
Warning---"make oldconfig" and a rebuild in 2.6.25.4 result in a .config file that is drastically different from what was there originally.  There is no warning.  For example, the md (raid) options are written out wrong.  of course, this can wreak havoc.

I presume this is a linux kernel bug, not a gentoo bug.

you have been warned.


Reproducible: Always




Portage 2.1.4.4 (default-linux/amd64/2007.0/desktop, gcc-4.1.2, glibc-2.6.1-r0, 2.6.25.2 x86_64)
=================================================================
System uname: 2.6.25.2 x86_64 Intel(R) Core(TM)2 CPU 6600 @ 2.40GHz
Timestamp of tree: Mon, 19 May 2008 13:35:01 +0000
app-shells/bash:     3.2_p33
dev-java/java-config: 1.3.7, 2.1.6
dev-lang/python:     2.4.4-r9
dev-python/pycrypto: 2.0.1-r6
sys-apps/baselayout: 1.12.11.1
sys-apps/sandbox:    1.2.18.1-r2
sys-devel/autoconf:  2.13, 2.61-r1
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.1
sys-devel/binutils:  2.18-r1
sys-devel/gcc-config: 1.4.0-r4
sys-devel/libtool:   1.5.26
virtual/os-headers:  2.6.23-r3
ACCEPT_KEYWORDS="amd64"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=nocona -pipe -O2"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/config"
CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/revdep-rebuild /etc/terminfo /etc/udev/rules.d"
CXXFLAGS="-march=nocona -pipe -O2"
DISTDIR="/usr/portage/distfiles"
FEATURES="distlocks metadata-transfer noinfo parallel-fetch sandbox sfperms splitdebug strict unmerge-orphans userfetch"
GENTOO_MIRRORS="http://www.gtlib.gatech.edu/pub/gentoo http://gentoo.mirrors.pair.com/ http://adelie.polymtl.ca/ http://distro.ibiblio.org/pub/linux/distributions/gentoo/"
LC_ALL="POSIX"
PKGDIR="/usr/portage/packages"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="# #mysql 3dnow X aac aalib acl acpi alsa amd64 apache2 arts asf atlas audio berkdb bitmap-fonts blas bonobo bzip2 bzlib cairo calendar cddb cdr cli cracklib crypt cups curl dbus directfb dri dv dvd dvdr dvdread eds emacs emboss encode esd evo examples f77 fam fbcon ffmpeg firefox fortran ftp g77 gcj gdbm ggi gif gnome gphoto2 gpm gstreamer gtk gtk2 gtkhtml guile hal hdhomerun iconv ieee1394 imagemagick imlib ipv6 isdnlog java javascript jpeg kde kdeenablefinal kerberos ldap libedit libwww lm_sensors mad mbox midi mikmod mime mmx mmx2 mono motif mozilla mp3 mpeg mpeg-4 mudflap mval nas ncurses networking nls nptl nptlonly nsplugin ogg opengl openmp oss pam pcm pcre pdf perl png postgres ppds pppd python qt qt3 qt3support qt4 quicktime readline reflection ruby samba scanner sdl server session slang snmp soap spell spl sse sse2 ssl svg symlink tcltk tcpd tidy tiff tightvnc truetype type1 unicode usb utempter vnc vorbis wma xinerama xml xml2 xorg xv xvid zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic auth_digest authn_anon authn_dbd authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info log_config logio mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_http rewrite setenvif so speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" USERLAND="GNU" VIDEO_CARDS="video_cards_nv"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LDFLAGS, LINGUAS, MAKEOPTS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PORTDIR_OVERLAY
Comment 1 Jeroen Roovers (RETIRED) gentoo-dev 2008-05-19 16:56:07 UTC
How did you reproduce it? Did you copy over the old config to .config? Could you provide a diff between the config before and after running oldconfig?
Comment 2 ivo welch 2008-05-19 17:27:01 UTC
Created attachment 153683 [details]
diff of 2.6.25.2 and 2.6.25.4 config files
Comment 3 ivo welch 2008-05-19 17:27:51 UTC
I am running 2.6.25.2 .  the .config in the 2.6.25.2 directory is also in /proc.

$ cd /usr/src/linux-2.6.25.4
make oldconfig
(hit return to each question.)


Comment 4 Daniel Drake (RETIRED) gentoo-dev 2008-05-19 21:21:56 UTC
so you took a .config from 2.6.25.2 and put it into 2.6.25.4 and saw bad results? can you upload your 2.6.25.2 config and some details of the bad results so that we can try to reproduce?
Comment 5 ivo welch 2008-05-19 23:19:18 UTC
(In reply to comment #4)
> so you took a .config from 2.6.25.2 and put it into 2.6.25.4 and saw bad
> results? can you upload your 2.6.25.2 config and some details of the bad
> results so that we can try to reproduce?
> 


well, yes and no.  I did not put the 2.6.25.2 .config file into the 2.6.25.4 directory.  in effect, "make oldconfig" does this.

if you send me a private email, I can arrange for computer access for you.  the machine is remotely accessible with a fixed IP.  this should make it easy for you to test it.

/iaw
Comment 6 Daniel Drake (RETIRED) gentoo-dev 2008-05-20 14:33:23 UTC
I'm sorry, I don't have enough time to go to those lengths. Perhaps you could just copy the config in question to .config in 2.6.25.4, run "make oldconfig" or whatever, examine output, explain the problems with it, and then upload the original (pre-oldconfig) file here so that we can try to reprodyce?
Comment 7 ivo welch 2008-05-20 18:19:58 UTC
Created attachment 153779 [details]
the original 2.6.25.2 file
Comment 8 ivo welch 2008-05-20 18:25:36 UTC
hi daniel:  make oldconfig is a substitute for copying the .config file from 2.6.25.2 into 2.6.25.4 .  it also prompts for newly encountered choices in the kernel (if you hit return, you get the defaults).  now, the whole point that creates the bug here is that I am not doing a straight copy of .config from 2.6.25.2 into 2.6.25.4.  if I did, my 2.6.25.4 .config file would not be hosed.  it is also my understanding that make oldconfig is recommended over a straight copy of config files.

if you want to reproduce this, you need to run 2.6.25.2 on your machine, then type "make oldconfig" in linux-2.6.25.4, and look at the resulting .config file in 2.6.25.4 .  look whether the raid MD configurations are still where they should be and whether the ALSA sound drivers are still where they should be.

[again, this is all for vanilla-sources, not gentoo-sources.]

Feel free to close this bug.  I just wanted to alert others.

/iaw
Comment 9 Duane Griffin 2008-05-21 12:42:27 UTC
I tried to reproduce the issue here with the config file you provided, but it worked fine. There were no differences between your config and the one that oldconfig generated (other than the time, of course). By the way, it is much easier if you just upload text files instead of gzipping them. That way we can look at it online instead of having to download and unzip it.

Remember that "make oldconfig" has to get the original config from somewhere. The first place it looks is the existing .config file in the kernel directory, if there is one. That is what Daniel was referring to when he said to copy it in. You copy in your existing config and then run oldconfig.

If there isn't a .config already present then it will try and find the correct config from your boot partition. You can see this in the start of the output. E.g. on my system one of the first lines from running oldconfig without a .config says "using defaults found in /boot/config-2.6.25.3". If there is no such message then it is using an existing .config from the kernel directory.

Taking a look at the diff it looks like your new config is a default one. My guess is that there was either a default .config in your kernel directory already (perhaps because another make target had generated it) or oldconfig couldn't find your existing config (perhaps because your boot partition was not mounted).

In other words, I don't think this is a bug. If you disagree then please re-open, explain why, and include the full output of the "make oldconfig" run.
Comment 10 Daniel Drake (RETIRED) gentoo-dev 2008-05-21 15:14:27 UTC
a possible explanation for strange behaviour that might have caused earlier confusion here:

2.6.24 introduced bug #215442 - if you started from a "blank" kernel, barely any options would be set (no networking, no PCI, ...). This is because there was a bug in the kernel config system where it was no longer starting from the x86-specific default config settings.

It took us a while to spot this, but when we did, we quickly introduced a workaround: when emerging an affected kernel, we ran "make defconfig" from the emerge process, so effectively emerging a kernel would put a /usr/src/linux/.config in place for you.

This was a suitable workaround but I hadn't even thought of the effects it might have on "make oldconfig". If you were to emerge a kernel where this workaround was in place, "make oldconfig" would not use your /boot/config-whatever like you might otherwise expect *because* the workaround already put a .config in place for you.

Assuming that is the cause of any confusion, apologies for that! After the bug was properly fixed in recent kernel releases, we swiftly removed the workaround from the eclass, so everything is back to normal now.
Comment 11 ivo welch 2008-05-21 18:51:48 UTC
Thanks, Daniel.  This makes perfect sense.