[Bug 4179] New: external toolchain generated by meta-toolchain depends on the original build location , has user/permission issues
bugzilla-daemon at treke.net
bugzilla-daemon at treke.net
Mon Apr 14 17:58:35 UTC 2008
http://bugs.openembedded.net/show_bug.cgi?id=4179
Summary: external toolchain generated by meta-toolchain depends
on the original build location, has user/permission
issues
Product: Openembedded
Version: Angstrom 2007.12
Platform: ARM
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P2
Component: Build
AssignedTo: openembedded-issues at lists.openembedded.org
ReportedBy: jin at mediatomb.cc
OK, that's quite weird and it took us some time to figure it out, because the
resulting error is not obvious.
Let's say you want to prepare an external toolchain for ARM eabi, you bitbake
meta-toolchain, install it on your system, test it - everything seems fine.
Now, the toolchain was built under the user account "A", same user tested it
and it was ok. User "B" on the same machine tries to use the external toolchain
that was installed system wide - and experiences weird problems (details will
follow below). Turns out you either have to allow user "B" to access the path
in home of user "A" where the toolchain was originally built, or you have to
completely remove user "A" account from the system - only then user "B" will be
able to use the external toolchain.
Turns out it looks for something in the directory where it has originally been
built, it works fine if that directory does not exist, but things go wroing if
the directory does exist but if the permissions do not allow accessing it.
Weird stuff, huh?
You can reproduce it by building an external toolchain for ARM926 and by trying
to compile the kernel (I used ARM versatile defconfig for testing).
So, install the produced toolchain in /opt then source this script:
export CROSS_COMPILE=arm-angstrom-linux-uclibcgnueabi-
export CC=${CROSS_COMPILE}gcc
export AR=${CROSS_COMPILE}ar
export AS=${CROSS_COMPILE}as
export LD=${CROSS_COMPILE}ld
export NM=${CROSS_COMPILE}nm
export OBJCOPY=${CROSS_COMPILE}objcopy
export OBJDUMP=${CROSS_COMPILE}objdump
export RANLIB=${CROSS_COMPILE}ranlib
export STRIP=${CROSS_COMPILE}strip
export PATH=$PATH:/opt/angstrom/arm/bin
export ARCH=arm
unpack a copy of the vanilla kernel (I used 2.6.24)
make versatile_defconfig
make
For the user "A" who compiled the external toolchain everything will build
without problems.
The user "B" who has no access to the directory of where "A" built the
toolchain, the build will fail with the following message:
arch/arm/kernel/traps.c: In function 'user_debug_setup':
arch/arm/kernel/traps.c:41: warning: pointer targets in passing argument 2 of
'get_option' differ in signedness
/tmp/ccW4PX1t.s: Assembler messages:
/tmp/ccW4PX1t.s:1121: Error: selected processor does not support `pld [r3,#0]'
make[1]: *** [arch/arm/kernel/traps.o] Error 1
make: *** [arch/arm/kernel] Error 2
If you remove the home directory of "A" and retry again as user "B" - it will
build without problems.
I am using org.openembedded.stable, my local conf lists:
DISTRO="angstrom-2007.1"
ANGSTROM_MODE = "uclibc"
My custom machine configuration sets TARGET_ARCH = "arm" and does not do
anything special (apart from choosing the kernel and console settings)
I hope someone has an idea on where the problem could be...
--
Configure bugmail: http://bugs.openembedded.net/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
More information about the Openembedded-issues
mailing list