[vserver] Vserver on ARM

From: Gordan Bobic <gordan_at_bobich.net>
Date: Fri 07 Jan 2011 - 03:25:36 GMT
Message-ID: <4D2687B0.7050704@bobich.net>

Hi,

I'm playing with Vserver on ARM at the moment. The kernel builds fine,
but the userspace utils are not as easy to get working.

The big problem is dietlibc. This doesn't seem to build pass all of it's
built-in self-tests even on x86, let along anything else. With some
fixing up (see here:
https://bugzilla.redhat.com/show_bug.cgi?id=667852 ) it can be persuaded
to build, but most self-tests fail with segfaults after that (without
the patches, the diet binary itself would sefgault - it seems to be
related to gcc's optimizer being dangerously broken on ARM, at least
when handling assemblies.

Next, it would appear that diet binary doesn't work quite as expected.
./configure decides to run it with -Os, but this breaks things and
causes it to pass -meabi=4 to cc1, which promptly exits complaining that
it doesn't understand that parameter. Indeed, according to the man page,
-meabi doesn't take parameters. Solution for this seems to be to pass

DIETFLAGS=''

to ./configure.

However, the build then proceeds to fail with the following:

diet gcc -O2 -g -march=armv5te -std=c99 -Wall -pedantic -W
-funit-at-a-time -o src/filetime src/filetime.o lib/libvserver.a
src/filetime.o: In function `main':
/root/rpmbuild/BUILD/util-vserver-0.30.216-pre2914/src/filetime.c:74:
undefined reference to `time'
collect2: ld returned 1 exit status
make[2]: *** [src/filetime] Error 1
make[2]: Leaving directory
`/usr/src/redhat/BUILD/util-vserver-0.30.216-pre2914'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory
`/usr/src/redhat/BUILD/util-vserver-0.30.216-pre2914'
make: *** [all] Error 2
error: Bad exit status from /var/tmp/rpm-tmp.3pJrqV (%build)

RPM build errors:
     Bad exit status from /var/tmp/rpm-tmp.3pJrqV (%build)

Am I missing a library/header somewhere? Or is this just dietlibc being
broken?

The same src.rpm package builds OK when "--without dietlibc"
(--disable-dietlibc to ./configure) is passed, but fails the hash self-test:

sha512 mismatch at rand-4096:
'312002a970b8949dcee2cd4c275d1f371eaba001bc313940e6a5c64630653624a56b963e3736ba1b7f7a18bb637f7e9280acd1c8487a5ca8483ed835ffbd57ff'
vs.
'f3508428e93872dc0b8696b38d3d1e80209158889339fd081a6cc925849a9bb80a7559440bd6f7a98839e0c89428d6edc9ea64f79a7ecd0facd968e1036a5efd'
FAIL: src/testsuite/hashcalc-plain.sh
sha512 mismatch at rand-4096:
'ddeb4cd9598d226b1e9ee458aa285cda8d0c8e48d3db44bcdc64021f1ddb393bb9d0cd06ab49fed4f2f9c8e6432d19'
vs.
'ef35ec379494577311c130e7139c720415e402c05f7ed4b713f3e8450556cd22014750d30dc9f0afa098820bb4fd957a48e674ba2d00185300c6b7607da2c456'
FAIL: src/testsuite/hashcalc.sh

This appears to happen with both the beecrupt and nss libraries being
used. Any thoughts on how to fix this? Will hashify still work with
--with-crypto-api=none? Or is that unrelated?

Just out of interest - is anybody else running vserver on ARM? Any words
of warning that I should be aware of?

Gordan
Received on Fri Jan 7 03:25:50 2011

[Next/Previous Months] [Main vserver Project Homepage] [Howto Subscribe/Unsubscribe] [Paul Sladen's vserver stuff]
Generated on Fri 07 Jan 2011 - 03:25:50 GMT by hypermail 2.1.8