I switched from i386 to i686 and after emerge -e world i removed old versions of gcc. Everything seems to be OK. I checked /etc/env.d following your howto and I haveamne wrote:mirojira: Thanks for your feedback even though that method is deprecated now.
You may want to check your /etc/env.d for files that don't belong there any more as described in the new guide, too.
Code: Select all
localhost gcc # grep 586 /etc/env.d/
localhost gcc # grep 386 /etc/env.d/
localhost gcc # Code: Select all
localhost gcc # ls -la
total 16
drwxr-xr-x 2 root root 80 Sep 5 15:22 .
drwxr-xr-x 4 root root 4096 Sep 4 18:50 ..
-rw-r--r-- 1 root root 32 Sep 4 01:29 config
-rw-r--r-- 1 root root 32 Sep 3 18:14 config-i686-pc-linux-gnu
-rw-r--r-- 1 root root 292 Sep 4 01:29 i686-pc-linux-gnu-4.1.1
Code: Select all
localhost gcc # cat config-i686-pc-linux-gnu
CURRENT=i386-pc-linux-gnu-3.3.6
Code: Select all
# env-update && source /etc/profileYeah, that one can be deleted.mirojira wrote:Is it OK? Or should I remove config-i686-pc-linux-gnu?Code: Select all
localhost gcc # cat config-i686-pc-linux-gnu CURRENT=i386-pc-linux-gnu-3.3.6
env-update just recreates the files in /etc/env.d/ (by looking in the subdirs gcc and binutils among other stuff), so it can never be wrong to do that.mirojira wrote:I did not runSould I run it?Code: Select all
# env-update && source /etc/profile
Code: Select all
'-mcpu=' is deprecated. Use '-mtune=' or '-march=' instead.Code: Select all
tux ~ $ cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 8
model name : Pentium III (Coppermine)
stepping : 3
cpu MHz : 733.468
cache size : 256 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 sep mtrr pge mca cmov pat pse36 mmx fxsr sse
bogomips : 1470.26
Thanks, will add that as soon i have a working environment again (got some hardware issues currently), as well as groff (thanks wilson).polemoser wrote:If you have installed courier / courier-imap - series, I'd highly recommend to recompie all these packages, including courierauth. Otherwise your won't be able to use any courier services because login will fail.
From man gcc:polemoser wrote:But if I change this from "-mcpu=i686" to "-march=pentium3": Will this have any unforseen sideffects? Will this brake anything? Thanks for your help.
If you want the same behaviour as before, use -mcpu=i686, which builds binaries for i686 that can also be run on other cpus (but are optimized for i686).-mcpu=cpu-type
A deprecated synonym for -mtune.

When i wrote the doc, i wanted to keep as much as possible to the real life test i've been running (which was i686 to i586), but i think it's a good idea to change it.richfish wrote: 1. Since the most common change will probably be i386 to i686, is it sensible to do a global search-replace of i686 with i386, and i586 with i686? That way most users following the guide should not need to do any translation and we might help them avoid mistakes. Particularly in the fixing up of env.d.
It's intentionally worded like that, as it really shouldn't be necessary to do it. If you want to be 100% safe, you may want to do it, in general recompiling the packages mentioned in the guide (need to add those mentioned here recently yet) should really be enough. There's also some discussion about it in [bug]147502[/bug], see comment 3 and 4.richfish wrote: 2. The "may want to run emerge -e world" part at the end feels risky to me. Just from the way it is worded, my guess is that quite a few users will try it without emerge -e world, and /then/ we'll find out their systems are broke. Does it make sense to strongly suggest at least an "emerge -e system", as everything else should be fixable if that works?
Code: Select all
SYMLINK include/asm -> include/asm-i386
scripts/kconfig/conf -s arch/i386/Kconfig
CC arch/i386/kernel/process.o
CC arch/i386/kernel/semaphore.o
CC arch/i386/kernel/signal.o
AS arch/i386/kernel/entry.o
CC arch/i386/kernel/traps.o
etc...What is being indicated there is that the kernel being built is to be a 32 bit PC compatible executable, not that it is optimized specifically for a 386 processor. The source code in arch/i386 is used for processors ranging from Intel 80386 types through current 32 bit (and 64 bit used as 32 bit) PC compatible processors, the output quoted is to be expected when building a kernel to be used with such processors.T-O7 wrote:I followed the guide to migrate from i386 to i686. When upgrading my kernel though, I see several references to i386 when the kernel is compiling:
Code: Select all
SYMLINK include/asm -> include/asm-i386 scripts/kconfig/conf -s arch/i386/Kconfig CC arch/i386/kernel/process.o CC arch/i386/kernel/semaphore.o CC arch/i386/kernel/signal.o AS arch/i386/kernel/entry.o CC arch/i386/kernel/traps.o etc...
Use a different processor type, which is unlikely to be the type of fix you were considering.T-O7 wrote:Is there any way to correct this?
While not in evidence here, it is also not excluded from possibility by the quoted output.T-O7 wrote:Did I miss a step?
Code: Select all
localhost ~ # gcc-config -l
[1] i386-pc-linux-gnu-3.3.6
[2] i386-pc-linux-gnu-3.3.6-hardened
[3] i386-pc-linux-gnu-3.3.6-hardenednopie
[4] i386-pc-linux-gnu-3.3.6-hardenednopiessp
[5] i386-pc-linux-gnu-3.3.6-hardenednossp
[6] i386-pc-linux-gnu-3.4.6
[7] i386-pc-linux-gnu-3.4.6-hardened
[8] i386-pc-linux-gnu-3.4.6-hardenednopie
[9] i386-pc-linux-gnu-3.4.6-hardenednopiessp
[10] i386-pc-linux-gnu-3.4.6-hardenednossp
[11] i686-pc-linux-gnu-4.1.1 *
Code: Select all
localhost env.d # grep 386 *
20java:LDPATH="/opt/blackdown-jdk-1.4.2.03/jre/lib/i386/:
/opt/blackdown-jdk-1.4.2.03/jre/lib/i386/native_threads/:
/opt/blackdown-jdk-1.4.2.03/jre/lib/i386/client/:
/opt/blackdown-jdk-1.4.2.03/jre/lib/i386/server/"
i386-*-3.4.6 is your old gcc is your old gcc version, the output is fine if you haven't removed it from your system yet.cmcheung wrote:I have done emerge -av1 binutils gcc glibc, which seemed to work fine. When i do gcc-config -l however, I get the following results:
Code: Select all
localhost ~ # gcc-config -l [1] i386-pc-linux-gnu-3.3.6 [2] i386-pc-linux-gnu-3.3.6-hardened [3] i386-pc-linux-gnu-3.3.6-hardenednopie [4] i386-pc-linux-gnu-3.3.6-hardenednopiessp [5] i386-pc-linux-gnu-3.3.6-hardenednossp [6] i386-pc-linux-gnu-3.4.6 [7] i386-pc-linux-gnu-3.4.6-hardened [8] i386-pc-linux-gnu-3.4.6-hardenednopie [9] i386-pc-linux-gnu-3.4.6-hardenednopiessp [10] i386-pc-linux-gnu-3.4.6-hardenednossp [11] i686-pc-linux-gnu-4.1.1 *
Seems blackdown always uses i386 in the path whatever your CHOST is, so you can just leave that alone.cmcheung wrote:Code: Select all
localhost env.d # grep 386 * 20java:LDPATH="/opt/blackdown-jdk-1.4.2.03/jre/lib/i386/: /opt/blackdown-jdk-1.4.2.03/jre/lib/i386/native_threads/: /opt/blackdown-jdk-1.4.2.03/jre/lib/i386/client/: /opt/blackdown-jdk-1.4.2.03/jre/lib/i386/server/"
Strange, portage usually cleans up there before compiling so old Makefiles should be wiped as well. Do you have FEATURES="keepwork" enabled in your make.conf by chance?s0medude wrote: After some digging I found a Makefile for sip in /var/tmp/portage that still contained a reference to i386 . After deleting all packages from /var/tmp/portage everything compiled flawlessly.