Insert into the file /etc/portage/package.accept_keywords this rows:
#required by app-admin/eselect-awk (argument)
=app-admin/eselect-awk-0.2 ~amd64

beba ... yes, I know that it was keyworded, but your assumption is that it will work with the current stable awk. If that was the case eselect-awk would have been set as a dependency. Its probably keyworded ~arch for a reason. This seems like the most obvious explanation for the issue.

On the core2 arch, sse4 is not available. I'd imagine "-march=core2 -msse4" is the cause of the problem. The error you're getting is EILSEQ (Illegal Instruction Sequence), which means the executable code is not suitable for the CPU, and causes the kernel to send SIGILL that kills your process.

Also, setting "-march=core2 -mtune=generic" is contradictory. -march tells it to consider those instructions available, as the base pool, and -mtune=generic then says optimise for the generic case. The best flags are just: "-O2 -pipe -march=native" ime. Some people like to add "-mtune=native" too. With just the first, I get flags that specify the cache sizes on my machine. (See cach0rr0's post a few down from the first link.)

If you want to make it "generic core2" rather than "tuned to my machine", use "-march=core2 -mtune=core2" if you must, or just get rid of -mtune.

edit:
As noted in cach0rr0's post you can use: gcc -Q --help=target and add whichever flags you like to see the differences.

Wow, I don't have any of -msse etc enabled testing that with -march=native here(!). I'm sure there is another command you can run, but that worries me.

Last edited by steveL on Fri Oct 12, 2012 10:00 am; edited 1 time in total

You put that in portage package directory, PKGDIR (see man make.conf), which defaults to /usr/portage/packages, so here do:

Code:

mkdir -p /usr/portage/packages/sys-apps

..and copy the file there. I use: PKGDIR="/var/pkg" in /etc/portage/make.conf since /var is the namespace for this sort of thing (the directory is root:root, not portage here, as I don't want users to be able to write to it.) If you want to do that, obviously change to:

Code:

mkdir -p /var/pkg/sys-apps

Once you've downloaded the file there, run:

Code:

emerge -K =sys-apps/gawk-3.1.8

See man emerge for --usepkgonly option.

The reason you set up a PKGDIR, is so that you can set FEATURES="buildpkg" in make.conf. Portage will then build a binpkg every time it compiles a package, so you can roll-back to any version of anything ever installed on your system (til you eclean the binpkg, or otherwise delete it.) If you do that, you'll never again have a problem like this you can't recover from using what you've already built.

Note you might need other packages, depending on how long you've had that setting. Good luck :-)