Wind River Support Network


LIN7-2491 : qemu make start-target breaks with localized linux (discovered in french localization)

Created: Dec 18, 2014    Updated: Sep 8, 2018
Resolved Date: Jul 16, 2015
Found In Version: 7.0
Fix Version:
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/ -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