Wind River Support Network


LIN8-3345 : CLONE - (WRL8) qemu make start-target breaks with localized linux (discovered in french localization)

Created: Apr 25, 2016    Updated: Dec 3, 2018
Resolved Date: Apr 25, 2016
Previous ID: LIN7-5989
Found In Version:
Fix Version:
Severity: Standard
Applicable for: Wind River Linux 8
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/ -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
Illegal modulus zero at /WindRiver-Platforms/QEMU-ARM/layers/wrlinux/scripts/ 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/, 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: //;



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.

Steps to Reproduce

.../QEMU-ARM$ .../WindRiver/wrlinux-5/wrlinux/configure --enable-kernel=standard --enable-rootfs=glibc_small --enable-board=qemuarma9 
.../QEMU-ARM$ make start-target

Other Downloads

Live chat