Fixed
Created: Dec 18, 2014
Updated: Sep 8, 2018
Resolved Date: Jul 16, 2015
Found In Version: 7.0
Fix Version: 7.0.0.8
Severity: Standard
Applicable for: Wind River Linux 7
Component/s: Build & Config, Workbench Integration
When running make-start-target on a Qemu target on a localized host (LANG=fr_FR.utf8 in my case), i get the following output:
.../QEMU-ARM$ make start-target
Stopping unfsd
Starting User Mode nfsd
/WindRiver-Platforms/QEMU-ARM/host-cross/usr/bin/pseudo /WindRiver-Platforms/QEMU-ARM/host-cross/usr/sbin/unfsd -p -N -i /WindRiver-Platforms/QEMU-ARM/var/nfs0.pid -e /WindRiver-Platforms/QEMU-ARM/var/exports0 -x 11111 -n 3049 -y 21111 -m 3048
On your target please remember to add the following options for NFS
nfsroot=IP_ADDRESS:/WindRiver-Platforms/QEMU-ARM/export/dist,nfsvers=2,mountprog=21111,nfsprog=11111,udp
Illegal modulus zero at /WindRiver-Platforms/QEMU-ARM/layers/wrlinux/scripts/config-target.pl line 1254.
make: *** [start-target] Erreur 255
I investigated a bit, and found that the problem is the output of taskset on line 1228 of layers/wrlinux/scripts/config-target.pl, which is different on different localisations:
.../QEMU-ARM$ taskset -p $$
masque d'affinit actuel du PID 5174 : f
which obviously doesn't match the following perl pattern matching on line 1230:
$local_cpu_mask =~ s/.*mask: //;
run:
LANG=C make start-target
alternatively, modify line 1228 to use:
my $local_cpu_mask = `LANG=C taskset -p \$\$ 2>/dev/null`;
but this may break somewhere else in the script.
A good solution is probably to set LANG=C or in some other way neutralize localization at the start of the script or in some other place.
.../QEMU-ARM$ .../WindRiver/wrlinux-5/wrlinux/configure --enable-kernel=standard --enable-rootfs=glibc_small --enable-board=qemuarma9
.../QEMU-ARM$ make start-target