Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 246763 - sys-kernel/hardened-sources-2.6.26-r5 + powerpc-gentoo-linux-uclibc - fs/exec.c:1710: error: implicit declaration of function `show_registers'
Summary: sys-kernel/hardened-sources-2.6.26-r5 + powerpc-gentoo-linux-uclibc - fs/exec...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Core system (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: The Gentoo Linux Hardened Kernel Team (OBSOLETE)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-11-14 18:20 UTC by Tom Lloyd
Modified: 2008-12-03 01:25 UTC (History)
2 users (show)

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


Attachments
.config of the offending kernel tree (config,40.46 KB, text/plain)
2008-11-20 15:32 UTC, Tom Lloyd
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Tom Lloyd 2008-11-14 18:20:09 UTC
Kernel will not compile, either natively or on my x86 system with a cross compiler.  Error message is identical on both systems.


Reproducible: Always

Steps to Reproduce:
1. cd /usr/src/linux-2.6.26-hardened-r5
2. ARCH=powerpc CROSS_COMPILE=powerpc-gentoo-linux-uclibc- make


Actual Results:  
After a little while (on my x86) or a long while (on my PPC ;) the build fails:

  HOSTLD  scripts/kconfig/conf
scripts/kconfig/conf -s arch/powerpc/Kconfig
  CHK     include/linux/version.h
  UPD     include/linux/version.h
  CHK     include/linux/utsrelease.h
  UPD     include/linux/utsrelease.h
  SYMLINK include/asm -> include/asm-powerpc
  CC      kernel/bounds.s
  GEN     include/linux/bounds.h
  CC      arch/powerpc/kernel/asm-offsets.s
  GEN     include/asm-powerpc/asm-offsets.h
  CALL    scripts/checksyscalls.sh
  HOSTCC  scripts/genksyms/genksyms.o
  SHIPPED scripts/genksyms/lex.c
  SHIPPED scripts/genksyms/parse.h
  SHIPPED scripts/genksyms/keywords.c
  HOSTCC  scripts/genksyms/lex.o
  SHIPPED scripts/genksyms/parse.c
  HOSTCC  scripts/genksyms/parse.o
  HOSTLD  scripts/genksyms/genksyms
  CC      scripts/mod/empty.o
  HOSTCC  scripts/mod/mk_elfconfig
  MKELF   scripts/mod/elfconfig.h
  HOSTCC  scripts/mod/file2alias.o
  HOSTCC  scripts/mod/modpost.o
  HOSTCC  scripts/mod/sumversion.o
  HOSTLD  scripts/mod/modpost
  HOSTCC  scripts/conmakehash
  HOSTCC  scripts/bin2c
  CC      init/main.o
  CHK     include/linux/compile.h
  UPD     include/linux/compile.h
  CC      init/version.o
  CC      init/do_mounts.o
  LD      init/mounts.o
  CC      init/noinitramfs.o
  CC      init/calibrate.o
  LD      init/built-in.o
  LD      usr/built-in.o
  CC      arch/powerpc/kernel/cputable.o
  CC      arch/powerpc/kernel/ptrace.o
  CC      arch/powerpc/kernel/syscalls.o
  CC      arch/powerpc/kernel/irq.o
  CC      arch/powerpc/kernel/align.o
  CC      arch/powerpc/kernel/signal_32.o
  CC      arch/powerpc/kernel/pmc.o
  CC      arch/powerpc/kernel/vdso.o
  CC      arch/powerpc/kernel/init_task.o
  CC      arch/powerpc/kernel/process.o
  CPP     arch/powerpc/kernel/systbl_chk.i
  CALL    arch/powerpc/kernel/systbl_chk.sh
  AS      arch/powerpc/kernel/systbl.o
  CC      arch/powerpc/kernel/idle.o
  CC      arch/powerpc/kernel/signal.o
  LDS     arch/powerpc/kernel/vdso32/vdso32.lds
  VDSO32A arch/powerpc/kernel/vdso32/sigtramp.o
  VDSO32A arch/powerpc/kernel/vdso32/gettimeofday.o
  VDSO32A arch/powerpc/kernel/vdso32/datapage.o
  VDSO32A arch/powerpc/kernel/vdso32/cacheflush.o
  VDSO32A arch/powerpc/kernel/vdso32/note.o
  VDSO32L arch/powerpc/kernel/vdso32/vdso32.so.dbg
  OBJCOPY arch/powerpc/kernel/vdso32/vdso32.so
  AS      arch/powerpc/kernel/vdso32/vdso32_wrapper.o
  LD      arch/powerpc/kernel/vdso32/built-in.o
  CC      arch/powerpc/kernel/of_device.o
  CC      arch/powerpc/kernel/of_platform.o
  CC      arch/powerpc/kernel/prom_parse.o
  CC      arch/powerpc/kernel/clock.o
  CC      arch/powerpc/kernel/rtas.o
  CC      arch/powerpc/kernel/rtas-rtc.o
  CC      arch/powerpc/kernel/rtas-proc.o
  AS      arch/powerpc/kernel/idle_6xx.o
  AS      arch/powerpc/kernel/l2cr_6xx.o
  AS      arch/powerpc/kernel/cpu_setup_6xx.o
  CC      arch/powerpc/kernel/module_32.o
  CC      arch/powerpc/kernel/time.o
  CC      arch/powerpc/kernel/prom.o
  CC      arch/powerpc/kernel/traps.o
  CC      arch/powerpc/kernel/setup-common.o
  CC      arch/powerpc/kernel/udbg.o
  AS      arch/powerpc/kernel/misc.o
  CC      arch/powerpc/kernel/io.o
  AS      arch/powerpc/kernel/misc_32.o
  AS      arch/powerpc/kernel/entry_32.o
  CC      arch/powerpc/kernel/setup_32.o
  CC      arch/powerpc/kernel/prom_init.o
  CC      arch/powerpc/kernel/ppc_ksyms.o
  CC      arch/powerpc/kernel/btext.o
  CC      arch/powerpc/kernel/legacy_serial.o
  CC      arch/powerpc/kernel/udbg_16550.o
  CC      arch/powerpc/kernel/pci_32.o
  CC      arch/powerpc/kernel/pci-common.o
  CC      arch/powerpc/kernel/iomap.o
  CALL    arch/powerpc/kernel/prom_init_check.sh
  LD      arch/powerpc/kernel/built-in.o
  AS      arch/powerpc/kernel/head_32.o
  LDS     arch/powerpc/kernel/vmlinux.lds
  AS      arch/powerpc/kernel/fpu.o
  CC      arch/powerpc/mm/fault.o
  CC      arch/powerpc/mm/mem.o
  CC      arch/powerpc/mm/init_32.o
  CC      arch/powerpc/mm/pgtable_32.o
  CC      arch/powerpc/mm/mmu_context_32.o
  CC      arch/powerpc/mm/ppc_mmu_32.o
  AS      arch/powerpc/mm/hash_low_32.o
  CC      arch/powerpc/mm/tlb_32.o
  LD      arch/powerpc/mm/built-in.o
  AS      arch/powerpc/lib/string.o
  CC      arch/powerpc/lib/alloc.o
  AS      arch/powerpc/lib/checksum_32.o
  AS      arch/powerpc/lib/div64.o
  AS      arch/powerpc/lib/copy_32.o
  AS      arch/powerpc/lib/crtsavres.o
  CC      arch/powerpc/lib/devres.o
  CC      arch/powerpc/lib/rheap.o
  LD      arch/powerpc/lib/built-in.o
  CC      arch/powerpc/sysdev/mpic.o
  CC      arch/powerpc/sysdev/grackle.o
  CC      arch/powerpc/sysdev/fsl_soc.o
  CC      arch/powerpc/sysdev/bestcomm/ata.o
  CC      arch/powerpc/sysdev/bestcomm/bcom_ata_task.o
  CC      arch/powerpc/sysdev/bestcomm/bestcomm.o
arch/powerpc/sysdev/bestcomm/bestcomm.c: In function `mpc52xx_bcom_probe':
arch/powerpc/sysdev/bestcomm/bestcomm.c:446: warning: long unsigned int format, phys_addr_t arg (arg 2)
  CC      arch/powerpc/sysdev/bestcomm/sram.o
arch/powerpc/sysdev/bestcomm/sram.c: In function `bcom_sram_init':
arch/powerpc/sysdev/bestcomm/sram.c:89: warning: long unsigned int format, phys_addr_t arg (arg 3)
  CC      arch/powerpc/sysdev/bestcomm/fec.o
  CC      arch/powerpc/sysdev/bestcomm/bcom_fec_rx_task.o
  CC      arch/powerpc/sysdev/bestcomm/bcom_fec_tx_task.o
  CC      arch/powerpc/sysdev/bestcomm/gen_bd.o
  CC      arch/powerpc/sysdev/bestcomm/bcom_gen_bd_rx_task.o
  CC      arch/powerpc/sysdev/bestcomm/bcom_gen_bd_tx_task.o
  LD      arch/powerpc/sysdev/bestcomm/bestcomm-core.o
  LD      arch/powerpc/sysdev/bestcomm/bestcomm-ata.o
  LD      arch/powerpc/sysdev/bestcomm/bestcomm-fec.o
  LD      arch/powerpc/sysdev/bestcomm/bestcomm-gen-bd.o
  LD      arch/powerpc/sysdev/bestcomm/built-in.o
  CC      arch/powerpc/sysdev/rtc_cmos_setup.o
  CC      arch/powerpc/sysdev/indirect_pci.o
  CC      arch/powerpc/sysdev/i8259.o
  LD      arch/powerpc/sysdev/built-in.o
  CC      arch/powerpc/platforms/52xx/mpc52xx_pic.o
  CC      arch/powerpc/platforms/52xx/mpc52xx_common.o
  CC      arch/powerpc/platforms/52xx/mpc52xx_pci.o
  CC      arch/powerpc/platforms/52xx/efika.o
  AS      arch/powerpc/platforms/52xx/mpc52xx_sleep.o
  CC      arch/powerpc/platforms/52xx/mpc52xx_pm.o
  LD      arch/powerpc/platforms/52xx/built-in.o
  CC      arch/powerpc/platforms/chrp/setup.o
  CC      arch/powerpc/platforms/chrp/time.o
  CC      arch/powerpc/platforms/chrp/pegasos_eth.o
  CC      arch/powerpc/platforms/chrp/pci.o
  CC      arch/powerpc/platforms/chrp/nvram.o
  LD      arch/powerpc/platforms/chrp/built-in.o
  LD      arch/powerpc/platforms/built-in.o
  CC      kernel/sched.o
  CC      kernel/fork.o
  CC      kernel/exec_domain.o
  CC      kernel/panic.o
  CC      kernel/printk.o
  CC      kernel/profile.o
  CC      kernel/exit.o
  CC      kernel/itimer.o
  TIMEC   kernel/timeconst.h
  CC      kernel/time.o
  CC      kernel/softirq.o
  CC      kernel/resource.o
  CC      kernel/sysctl.o
  CC      kernel/capability.o
  CC      kernel/ptrace.o
  CC      kernel/timer.o
  CC      kernel/user.o
  CC      kernel/signal.o
  CC      kernel/sys.o
  CC      kernel/kmod.o
  CC      kernel/workqueue.o
  CC      kernel/pid.o
  CC      kernel/rcupdate.o
  CC      kernel/extable.o
  CC      kernel/params.o
  CC      kernel/posix-timers.o
  CC      kernel/kthread.o
  CC      kernel/wait.o
  CC      kernel/kfifo.o
  CC      kernel/sys_ni.o
  CC      kernel/posix-cpu-timers.o
  CC      kernel/mutex.o
  CC      kernel/hrtimer.o
  CC      kernel/rwsem.o
  CC      kernel/nsproxy.o
  CC      kernel/srcu.o
  CC      kernel/semaphore.o
  CC      kernel/notifier.o
  CC      kernel/ksysfs.o
  CC      kernel/pm_qos_params.o
  CC      kernel/sched_clock.o
  CC      kernel/sysctl_check.o
  CC      kernel/irq/handle.o
  CC      kernel/irq/manage.o
  CC      kernel/irq/spurious.o
  CC      kernel/irq/resend.o
  CC      kernel/irq/chip.o
  CC      kernel/irq/devres.o
  CC      kernel/irq/proc.o
  LD      kernel/irq/built-in.o
  CC      kernel/power/main.o
  CC      kernel/power/process.o
kernel/power/process.c: In function `try_to_freeze_tasks':
kernel/power/process.c:199: warning: comparison of distinct pointer types lacks a cast
  CC      kernel/power/console.o
  CC      kernel/power/poweroff.o
  LD      kernel/power/built-in.o
  CC      kernel/time/timekeeping.o
  CC      kernel/time/ntp.o
  CC      kernel/time/clocksource.o
  CC      kernel/time/jiffies.o
  CC      kernel/time/timer_list.o
  CC      kernel/time/clockevents.o
  CC      kernel/time/tick-common.o
  CC      kernel/time/tick-oneshot.o
  CC      kernel/time/tick-sched.o
  LD      kernel/time/built-in.o
  CC      kernel/futex.o
  CC      kernel/rtmutex.o
  CC      kernel/dma.o
  CC      kernel/module.o
  CC      kernel/acct.o
  GZIP    kernel/config_data.gz
  IKCFG   kernel/config_data.h
  CC      kernel/configs.o
  CC      kernel/seccomp.o
  CC      kernel/rcuclassic.o
  CC      kernel/relay.o
  CC      kernel/utsname_sysctl.o
  LD      kernel/built-in.o
  CC      mm/bootmem.o
  CC      mm/filemap.o
  CC      mm/mempool.o
  CC      mm/oom_kill.o
  CC      mm/fadvise.o
  CC      mm/maccess.o
  CC      mm/page_alloc.o
  CC      mm/page-writeback.o
  CC      mm/pdflush.o
  CC      mm/readahead.o
  CC      mm/swap.o
  CC      mm/truncate.o
  CC      mm/vmscan.o
  CC      mm/prio_tree.o
  CC      mm/util.o
  CC      mm/mmzone.o
  CC      mm/vmstat.o
  CC      mm/backing-dev.o
  CC      mm/page_isolation.o
  CC      mm/fremap.o
  CC      mm/highmem.o
  CC      mm/madvise.o
  CC      mm/memory.o
  CC      mm/mincore.o
  CC      mm/mlock.o
  CC      mm/mmap.o
  CC      mm/mprotect.o
  CC      mm/mremap.o
  CC      mm/msync.o
  CC      mm/rmap.o
  CC      mm/vmalloc.o
  CC      mm/bounce.o
  CC      mm/page_io.o
  CC      mm/swap_state.o
  CC      mm/swapfile.o
  CC      mm/thrash.o
  CC      mm/dmapool.o
  CC      mm/shmem.o
  CC      mm/slub.o
  LD      mm/built-in.o
  CC      fs/open.o
  CC      fs/read_write.o
  CC      fs/file_table.o
  CC      fs/super.o
  CC      fs/char_dev.o
  CC      fs/stat.o
  CC      fs/exec.o
fs/exec.c: In function `pax_report_refcount_overflow':
fs/exec.c:1710: error: implicit declaration of function `show_registers'
make[1]: *** [fs/exec.o] Error 1
make: *** [fs] Error 2




splig linux-2.6.26-hardened-r5 # emerge --info
Portage 2.1.4.5 (default-linux/x86/2007.0/desktop, gcc-4.1.2, glibc-2.6.1-r0, 2.6.25-gentoo-r8-splig-X2-rtc i686)
=================================================================
System uname: 2.6.25-gentoo-r8-splig-X2-rtc i686 AMD Athlon(tm) 64 Processor 3700+
Timestamp of tree: Fri, 14 Nov 2008 14:45:01 +0000
distcc 2.18.3 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled]
app-shells/bash:     3.2_p33
dev-java/java-config: 1.3.7, 2.1.6
dev-lang/python:     2.5.2-r7
dev-util/cmake:      2.4.6-r1
sys-apps/baselayout: 1.12.11.1
sys-apps/sandbox:    1.2.18.1-r2
sys-devel/autoconf:  2.13, 2.61-r2
sys-devel/automake:  1.5, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.1-r1
sys-devel/binutils:  2.18-r3
sys-devel/gcc-config: 1.4.0-r4
sys-devel/libtool:   1.5.26
virtual/os-headers:  2.6.23-r3
ACCEPT_KEYWORDS="x86"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -march=athlon-xp -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/lib/mozilla/defaults/pref /usr/share/config"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/revdep-rebuild /etc/terminfo /etc/udev/rules.d"
CXXFLAGS=""
DISTDIR="/usr/portage/distfiles"
FEATURES="candy distlocks fixpackages metadata-transfer parallel-fetch sandbox sfperms unmerge-orphans userfetch"
GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo"
LINGUAS="en_GB"
MAKEOPTS="-j5"
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"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"
USE="3dnow 3dnowext X a52 aac aalib accessibility acpi alsa asf avi bash-completion berkdb bluetooth branding browserplugin bzip2 cairo cdr cjk cli cracklib crypt cups dbus dga divx divx4linux dri dv dvd dvdr dvdread eds emboss encode evo fam ffmpeg firefox flac fortran gdbm gif gpm gtk gtk2 hal howl iconv ieee1394 ipod ipv6 irmc isdnlog java jpeg kde kdehiddenvisibility kqemu lm_sensors logitech-mouse mad midi mikmod mime mjpeg mmx mmxext mono mozbranding mp3 mp4 mpeg mplayer msn mudflap musicbrainz ncurses nls nptl nptlonly nsplugin nvidia offensive ogg opengl openmp pam pcre pdf perl png posix pppd python qt qt3 qt3support qt4 quicktime readline reflection samba sdl session spell spl spreadsheet sse sse2 ssl svg svga tcpd tiff truetype unicode usb v4l vcd videos visualization vorbis win32codecs x86 xcb xcomposite xine xinerama xml xorg xpm xscreensaver xv xvid xvmc zlib" ALSA_CARDS="intel8x0 bt87x" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon 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 deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CAMERAS="sq905" ELIBC="glibc" INPUT_DEVICES="keyboard evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en_GB" USERLAND="GNU" VIDEO_CARDS="nv nvidia vesa fbdev"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LANG, LC_ALL, LDFLAGS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 1 Gordon Malm (RETIRED) gentoo-dev 2008-11-19 09:13:49 UTC
Hi Tom,

I didn't even see this bug until now as it was not assigned properly.  Also with kernel miscompiles please post your kernel config.

As for the error, CONFIG_PAX_REFCOUNT is an x86-only feature (show_registers() isn't even available for ppc).  I'm not exactly sure how you even selected it on ppc because the Kconfig entry has a "depends on X86" line.  Did you copy an x86 kernel config over and modify it?  I'm curious to know how exactly you managed to even run into this.  Thanks!
Comment 2 Tom Lloyd 2008-11-20 15:30:56 UTC
I copied the .config file across from my current 2.6.26-hardened-r1 tree, ran make oldconfig, make menuconfig to check that everything was still in order, then make.  It's essentially the same as the config I'm running right now:

muttley ~ # gunzip /proc/config.gz -c > config
muttley ~ # diff config /usr/src/linux-2.6.26-hardened-r5/.config
3,4c3,4
< # Linux kernel version: 2.6.26-hardened-r1
< # Mon Sep  1 18:19:57 2008
---
> # Linux kernel version: 2.6.26-hardened-r5
> # Thu Nov 13 10:56:57 2008
1606a1607
> CONFIG_PAX_REFCOUNT=y

No idea how that crept in there!  True I tried cross-compiling it on an x86 machine afterwards, but the error came up on my first attempt, which was native.  Weird...

Full config follows as an attachment.
Comment 3 Tom Lloyd 2008-11-20 15:32:23 UTC
Created attachment 172521 [details]
.config of the offending kernel tree
Comment 4 Gordon Malm (RETIRED) gentoo-dev 2008-11-20 17:36:03 UTC
Hmm.  PAX_REFCOUNT wasn't available in 2.6.26-r1, it was a new feature in 2.6.26-r2.  So it must've been added during make oldconfig on your jump to -r5.

I noticed you're using the GRKERNSEC_HIGH security level.  This level specifies:
"select PAX_REFCOUNT" without a qualifier such as "select PAX_REFCOUNT if (X86)" like the server/workstation security levels do.  Now, it should still not be selecting it because PAX_REFCOUNT has "depends on X86" but its the only thing I can think that would be causing PAX_REFCOUNT to creep in.

So going to CC upstream and see what they think.
Comment 5 PaX Team 2008-11-22 00:26:10 UTC
(In reply to comment #4)
> "select PAX_REFCOUNT" without a qualifier such as "select PAX_REFCOUNT if
> (X86)" like the server/workstation security levels do.  Now, it should still
> not be selecting it because PAX_REFCOUNT has "depends on X86" but its the only
> thing I can think that would be causing PAX_REFCOUNT to creep in.
> 
> So going to CC upstream and see what they think.

spender says that it should be fixed in the latest grsec test patch (he indeed missed the X86 dependency for this feature).
Comment 6 Gordon Malm (RETIRED) gentoo-dev 2008-12-03 01:10:15 UTC
Fixed in 2.6.26-r7 and 2.6.27-r2, thanks for reporting!
Comment 7 Tom Lloyd 2008-12-03 01:25:02 UTC
(In reply to comment #6)
> Fixed in 2.6.26-r7 and 2.6.27-r2, thanks for reporting!
> 

Not at all - thanks for fixing!

=)