Bug 98187 - groff-1.19.1-r2 fails to compile on UCLIBC emerge -e system
|
Bug#:
98187
|
Product: Gentoo Linux
|
Version: unspecified
|
Platform: All
|
|
OS/Version: Linux
|
Status: RESOLVED
|
Severity: blocker
|
Priority: P2
|
|
Resolution: FIXED
|
Assigned To: embedded@gentoo.org
|
Reported By: geekypenguin@gmail.com
|
|
Component: Core system
|
|
|
URL:
|
|
Summary: groff-1.19.1-r2 fails to compile on UCLIBC emerge -e system
|
|
Keywords:
|
|
Status Whiteboard:
|
|
Opened: 2005-07-07 00:03 0000
|
fails to compile on uclibc stage2 (emerge -e system)
Reproducible: Always
Steps to Reproduce:
1. stage1 bootstrap
2. emerge -e system
3.
Actual Results:
chmod +x eqn2graph
Making eqn2graph.n from eqn2graph.man
make[2]: Leaving directory
`/var/tmp/portage/groff-1.19.1-r2/work/groff-1.19.1/contrib/eqn2graph'
make[2]: Entering directory
`/var/tmp/portage/groff-1.19.1-r2/work/groff-1.19.1/contrib/grap2graph'
rm -f grap2graph; \
sed -e "s|@g@||g" \
-e "s|@VERSION@|1.19.1|" \
-e 1s/a/a/ ./grap2graph.sh >grap2graph; \
chmod +x grap2graph
Making grap2graph.n from grap2graph.man
make[2]: Leaving directory
`/var/tmp/portage/groff-1.19.1-r2/work/groff-1.19.1/contrib/grap2graph'
make[2]: Entering directory
`/var/tmp/portage/groff-1.19.1-r2/work/groff-1.19.1/contrib/groffer'
rm -f groffer; \
sed -e "s|@BINDIR@|/usr/bin|g" \
-e "s|@VERSION@|1.19.1|g" \
-e 1s/a/a/ ./groffer.sh >groffer; \
chmod +x groffer
Making groffer.n from groffer.man
make[2]: Leaving directory
`/var/tmp/portage/groff-1.19.1-r2/work/groff-1.19.1/contrib/groffer'
make[2]: Entering directory
`/var/tmp/portage/groff-1.19.1-r2/work/groff-1.19.1/contrib/mom'
cp ./examples/penguin.ps .
test -d examples || /bin/sh
/var/tmp/portage/groff-1.19.1-r2/work/groff-1.19.1/mkinstalldirs examples
touch examples/stamp
GROFF_COMMAND_PREFIX=''; export GROFF_COMMAND_PREFIX; GROFF_BIN_PATH=`echo
/var/tmp/portage/groff-1.19.1-r2/work/groff-1.19.1/src/roff/groff
/var/tmp/portage/groff-1.19.1-r2/work/groff-1.19.1/src/roff/troff
/var/tmp/portage/groff-1.19.1-r2/work/groff-1.19.1/src/devices/grops | sed -e
's| *|:|g'`; export GROFF_BIN_PATH;
/var/tmp/portage/groff-1.19.1-r2/work/groff-1.19.1/src/roff/groff/groff
-F/var/tmp/portage/groff-1.19.1-r2/work/groff-1.19.1/font
-F/var/tmp/portage/groff-1.19.1-r2/work/groff-1.19.1/font
-M/var/tmp/portage/groff-1.19.1-r2/work/groff-1.19.1/tmac
-M/var/tmp/portage/groff-1.19.1-r2/work/groff-1.19.1/tmac -M. -Tps -mom
examples/letter.mom >examples/letter.ps
/var/tmp/portage/groff-1.19.1-r2/work/groff-1.19.1/src/roff/groff/groff: grops:
Signal 11
make[2]: *** [examples/letter.ps] Error 2
make[2]: Leaving directory
`/var/tmp/portage/groff-1.19.1-r2/work/groff-1.19.1/contrib/mom'
make[1]: *** [contrib/mom] Error 2
make[1]: Leaving directory `/var/tmp/portage/groff-1.19.1-r2/work/groff-1.19.1'
make: *** [all] Error 2
Portage 2.0.51.22-r1 (uclibc/x86, gcc-3.4.4, uclibc-0.9.27-r0, 2.6.12-gentoo-r3
i686)
=================================================================
System uname: 2.6.12-gentoo-r3 i686 AMD Athlon(TM) XP2200+
Gentoo Base System version 1.6.12
dev-lang/python: 2.3.4-r1, 2.4.1-r1
sys-apps/sandbox: 1.2.10
sys-devel/autoconf: [Not Present]
sys-devel/automake: [Not Present]
sys-devel/binutils: 2.16.1
sys-devel/libtool: [Not Present]
virtual/os-headers: 2.6.11-r2
ACCEPT_KEYWORDS="x86 ~x86"
AUTOCLEAN="yes"
CBUILD="i686-gentoo-linux-uclibc"
CFLAGS="-O2 -march=athlon-xp -fomit-frame-pointer -ftracer
-fprefetch-loop-arrays -pipe"
CHOST="i686-gentoo-linux-uclibc"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.4/env
/usr/kde/3.4/share/config /usr/kde/3.4/shutdown /usr/kde/3/share/config
/usr/lib/X11/xkb /usr/share/config /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-O2 -march=athlon-xp -fomit-frame-pointer -ftracer
-fprefetch-loop-arrays -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoaddcvs autoconfig candy ccache distlocks nodoc noinfo noman
sandbox sfperms strict"
GENTOO_MIRRORS="http://open-systems.ufl.edu/mirrors/gentoo
http://mirror.datapipe.net/gentoo"
LDFLAGS="-Wl,-O1 -Wl,--sort-common"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="x86 ncurses python readline uclibc zlib userland_GNU kernel_linux elibc_uclibc"
Unset: ASFLAGS, CTARGET, LANG, LC_ALL, LINGUAS, MAKEOPTS, PORTDIR_OVERLAY
Signal 11 -> segv
does it fail everytime at the same spot ?
yeah it fails same spot no matter what version I tell it to use.
after a onshot and nodeps on libperl a Signal 6 arrises.
I will leave this up to embedded herd to close at their discreation!
a stable build then converted to ~arch works fine no segv, as I reported earlier
a ~arch stage1 setup however fails with groff. Hopefully you all can figure it
all out.
having the same problem:
=====[ begin ]=====
make[2]: Entering directory
`/var/tmp/portage/groff-1.19.1-r2/work/groff-1.19.1/contrib/pic2graph'
rm -f pic2graph; \
sed -e "s|@g@||g" \
-e "s|@VERSION@|1.19.1|" \
-e 1s/a/a/ ./pic2graph.sh >pic2graph; \
chmod +x pic2graph
Making pic2graph.n from pic2graph.man
make[2]: Leaving directory
`/var/tmp/portage/groff-1.19.1-r2/work/groff-1.19.1/contrib/pic2graph'
make[2]: Entering directory
`/var/tmp/portage/groff-1.19.1-r2/work/groff-1.19.1/contrib/eqn2graph'
rm -f eqn2graph; \
sed -e "s|@g@||g" \
-e "s|@VERSION@|1.19.1|" \
-e 1s/a/a/ ./eqn2graph.sh >eqn2graph; \
chmod +x eqn2graph
Making eqn2graph.n from eqn2graph.man
make[2]: Leaving directory
`/var/tmp/portage/groff-1.19.1-r2/work/groff-1.19.1/contrib/eqn2graph'
make[2]: Entering directory
`/var/tmp/portage/groff-1.19.1-r2/work/groff-1.19.1/contrib/grap2graph'
rm -f grap2graph; \
sed -e "s|@g@||g" \
-e "s|@VERSION@|1.19.1|" \
-e 1s/a/a/ ./grap2graph.sh >grap2graph; \
chmod +x grap2graph
Making grap2graph.n from grap2graph.man
make[2]: Leaving directory
`/var/tmp/portage/groff-1.19.1-r2/work/groff-1.19.1/contrib/grap2graph'
make[2]: Entering directory
`/var/tmp/portage/groff-1.19.1-r2/work/groff-1.19.1/contrib/groffer'
rm -f groffer; \
sed -e "s|@BINDIR@|/usr/bin|g" \
-e "s|@VERSION@|1.19.1|g" \
-e 1s/a/a/ ./groffer.sh >groffer; \
chmod +x groffer
Making groffer.n from groffer.man
make[2]: Leaving directory
`/var/tmp/portage/groff-1.19.1-r2/work/groff-1.19.1/contrib/groffer'
make[2]: Entering directory
`/var/tmp/portage/groff-1.19.1-r2/work/groff-1.19.1/contrib/mom'
cp ./examples/penguin.ps .
test -d examples || /bin/sh
/var/tmp/portage/groff-1.19.1-r2/work/groff-1.19.1/mkinstalldirs examples
touch examples/stamp
GROFF_COMMAND_PREFIX=''; export GROFF_COMMAND_PREFIX; GROFF_BIN_PATH=`echo
/var/tmp/portage/groff-1.19.1-r2/work/groff-1.19.1/src/roff/groff
/var/tmp/portage/groff-1.19.1-r2/work/groff-1.19.1/src/roff/troff
/var/tmp/portage/groff-1.19.1-r2/work/groff-1.19.1/src/devices/grops | sed -e
's| *|:|g'`; export GROFF_BIN_PATH;
/var/tmp/portage/groff-1.19.1-r2/work/groff-1.19.1/src/roff/groff/groff
-F/var/tmp/portage/groff-1.19.1-r2/work/groff-1.19.1/font
-F/var/tmp/portage/groff-1.19.1-r2/work/groff-1.19.1/font
-M/var/tmp/portage/groff-1.19.1-r2/work/groff-1.19.1/tmac
-M/var/tmp/portage/groff-1.19.1-r2/work/groff-1.19.1/tmac -M. -Tps -mom
examples/letter.mom >examples/letter.ps
=====[ end ]=====
after that it just enters an infinit loop or something, cpu is permanent at 100%
so i just killed it:
=====[ begin ]====
/var/tmp/portage/groff-1.19.1-r2/work/groff-1.19.1/src/roff/groff/groff: grops:
Signal 15
make[2]: *** [examples/letter.ps] Error 2
make[2]: Leaving directory
`/var/tmp/portage/groff-1.19.1-r2/work/groff-1.19.1/contrib/mom'
make[1]: *** [contrib/mom] Error 2
make[1]: Leaving directory `/var/tmp/portage/groff-1.19.1-r2/work/groff-1.19.1'
make: *** [all] Error 2
!!! ERROR: sys-apps/groff-1.19.1-r2 failed.
!!! Function src_compile, Line 85, Exitcode 2
!!! (no error message)
!!! If you need support, post the topmost build error, NOT this status message.
=====[ end ]=====
some infos:
# ls /*.tar.bz2
/portage-20050707.tar.bz2 /stage1-x86-uclibc-2005.0.tar.bz2
# emerge --info
Portage 2.0.51.22-r1 (uclibc/x86, gcc-3.4.4, uclibc-0.9.27-r0, 2.6.12-gentoo-r4
i686)
=================================================================
System uname: 2.6.12-gentoo-r4 i686 Intel(R) Pentium(R) M processor 1.60GHz
Gentoo Base System version 1.6.12
dev-lang/python: 2.3.4-r1
sys-apps/sandbox: 1.2.10
sys-devel/autoconf: [Not Present]
sys-devel/automake: [Not Present]
sys-devel/binutils: 2.16.1
sys-devel/libtool: [Not Present]
virtual/os-headers: 2.6.11-r2
ACCEPT_KEYWORDS="x86 ~x86"
AUTOCLEAN="yes"
CBUILD="i686-gentoo-linux-uclibc"
CFLAGS="-march=pentium-m -Os -pipe -fomit-frame-pointer"
CHOST="i686-gentoo-linux-uclibc"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config
/usr/lib/X11/xkb /usr/share/config /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-march=pentium-m -Os -pipe -fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig distlocks nodoc noinfo noman sandbox sfperms strict"
GENTOO_MIRRORS="http://pandemonium.tiscali.de/pub/gentoo/"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
SYNC="rsync://rsync.de.gentoo.org/gentoo-portage"
USE="x86 userland_GNU kernel_linux elibc_uclibc"
Unset: ASFLAGS, CTARGET, LANG, LC_ALL, LDFLAGS, LINGUAS, MAKEOPTS, PORTDIR_OVERLAY
# grep -v ^# /etc/make.conf | grep .
USE="-* x86"
CHOST="i686-gentoo-linux-uclibc"
CFLAGS="-march=pentium-m -Os -pipe -fomit-frame-pointer"
CXXFLAGS="${CFLAGS}"
ACCEPT_KEYWORDS="~x86"
GENTOO_MIRRORS="http://pandemonium.tiscali.de/pub/gentoo/"
SYNC="rsync://rsync.de.gentoo.org/gentoo-portage"
ALSA_CARDS="intel8x0"
# USE="bzip2 gpm ncurses readline pcre zlib" emerge -e system
[...]
some info from work dir on ldd groff itself :
libstdc++.so.6 => /usr/lib/gcc/i686-pc-linux-uclibc/3.4.4/libstdc++.so.6
(0xb7f06000)
libm.so.0 => /lib/libm.so.0 (0xb7ef7000)
libgcc_s.so.1 => /usr/lib/gcc/i686-pc-linux-uclibc/3.4.4/libgcc_s.so.1 (0xb7ef0000)
libc.so.0 => /lib/libc.so.0 (0xb7ea6000)
ld-uClibc.so.0 => /lib/ld-uClibc.so.0 (0xb7f82000)
I will be going threw code to see if I can come up with a patch for this issue
to address the memory issue at hand here.
I'm pretty sure groff has never worked with uclibc. Its apart of the reason
that
we have had it removed from system along with man which depends on this.
We probably just need to fix libperl
You should be able to work around this one temp by adding the following to your
system
/etc/portage/package.use: sys-devel/libperl nocxx
I'm having another problem with groff 1.19.1-r2.
During it's emerge I got millions of messages like this, one after another and
it seams to be an endless loop:
grops:<standard input> (<standard input>):1748: missing argument
If I stop it's emerge with Ctrl-C I got:
grops:<standard input>make[2]: *** Deleting file `pic.ps'
Caught signal 2 in pid 10974
make[2]: *** [pic.ps] Error 130
make[1]: *** [doc] Interrupt
make: *** [all] Interrupt
/usr/portage/sys-apps/groff/groff-1.19.1-r2.ebuild: src_compile aborted; exiting.
solar even with the patch same results are applied. Groff works fine with
stable
by the way. this is a GCC-3.4.4 issue I am almost sure about it. I will
continue
to look for a better way then removing the man pages and groff from uclibc
setup.
Ok well. We still never had perl depending on it for uclibc. Thats why nobody
noticed it before. (You never needed it)
ok, i can reproduce here in my uclibc chroot with gcc-3.4.4
I can reproduce this error with groff-1.19.1-r2 and 1.18.1-r4. I'm using
gcc-3.3.5.
I do not get this endless loop also mentioned.
it either goes into a loop or segfaults
either way, disabling sandbox seems to allow groff to complete
I reproduced the problem in my usual uclibc/hardened stage3 builds.
I use a stable profile...
Avoiding groff by passing a nocxx flag to libperl works fine as a workaround...
but we must still fix the profile somehow so that stage3 builds do not fail.
rumor has it that if sandbox is disabled groff compiles fine.
perhaps we are looking in the wrong place?
Solar is for sure a sandbox violation. Spanky nailed it right on the money.
And how about removing perl from the uclibc profiles completely ? It currently
pulls in :
app-admin/perl-cleaner-1.01
sys-apps/man-1.6-r1
sys-process/cronbase-0.3.2
dev-lang/perl-5.8.6-r5
sys-devel/libperl-5.8.6-r1
sys-apps/groff-1.19.1-r2
sys-apps/texinfo-4.8
If that's not an option, I am considering adding an uclibc/x86/hardened/gnap
profile that would reduce the number of packages I need to build in stage3 just
to remove them in livecd-stage2 (and also workaround this bug :). Any no's/dont's ?
libperl patch commited to the tree for now.
I also have this error on ppc. I can not get by it.
I tried the following..
FEATURES="-sandbox" emerge groff
USE="nocxx" emerge libperl
My current repoz has the patches applied to libperl.
Anything you need let me know I am dead in an emerge system :(
Created an attachment (id=67844) [details]
uClibc-0.9.28-_dl_fini-correct-order.patch
If _DL_FINI_CRT_COMPAT is defined, the libraries's FINI is setup to run at exit
via atexit(), but this makes it run _before_ the fini (__app_fini()) of the
app, causing stuff like sandbox that frees structs, etc via its fini to
segfault. Same thing for 0.9.27, although things are slightly different.
This patch fixes it, but I consider it more a hack, and 0.9.28's new
__rtld_fini() stuff fixes it properly if _DL_FINI_CRT_COMPAT=n.
Created an attachment (id=67846) [details]
uClibc-0.9.28-_dl_fini-correct-order.patch
Might have made a mistake with the casting there, allthough it works fine:
This:
-----
- if (_dl_atexit)
- (*_dl_atexit) (_dl_fini);
+ if (__set__dl_fini)
+ (__set__dl_fini)(_dl_fini);
-----
instead of (note the added '*' before __set__dl_fini):
-----
- if (_dl_atexit)
- (*_dl_atexit) (_dl_fini);
+ if (__set__dl_fini)
+ (*__set__dl_fini)(_dl_fini);
-----
(From update of attachment 67846 [details])
ive fixed this upstream and i dont plan on enabling DL_FINI_CRT_COMPAT in
uClibc-0.9.28 ebuild so this should be a non-issue
(From update of attachment 67850 [details])
ok, i had to tweak nlist and init_fini_list variables, and remove the
'tpnt->init_flag |= FINI_FUNCS_CALLED;' line in the last hunk against ldso.c
once i did that, it seems to work now
Created an attachment (id=69195) [details]
40_all_uClibc-0.9.27-_dl_fini-correct-order.patch
i'm giving this one a spin now in a uclibc chroot (emerge system -e) ... but it
seems to work fine
many thanks az :)
I can confirm that groff (which is needed by QMail on my side, which does want
do install manpages) fails as mentioned with sandbox enabled, and succeeds with
FEATURES="-sandbox -usersandbox" emerge groff
hardened-uclibc profile, gcc-3.4.4-r1, uclibc-0.9.27, groff-1.19.1-r2
*** Bug 108717 has been marked as a duplicate of this bug. ***
(In reply to comment #30)
> *** Bug 108717 has been marked as a duplicate of this bug. ***
Bug 108717 is about compiling Xorg without groff. Might be usefull in the
meantime, until the groff/uclibc issue is resolved...
0.9.27-r1 is in ~arch now as is 0.9.28