[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: master fails to build/check
From: |
Ladislav Michl |
Subject: |
Re: master fails to build/check |
Date: |
Fri, 31 Jan 2020 12:16:25 +0100 |
On Thu, Jan 30, 2020 at 02:39:05PM -0800, Gary E. Miller wrote:
> Yo Ladislav!
>
> On Thu, 30 Jan 2020 21:49:55 +0100
> Ladislav Michl <address@hidden> wrote:
>
> > > Nice. I think the major scons changes for this cycle are all done.
> > > I hope some of the cross-compile people also do some tests.
> >
> > Care to check more scons questions asked few months ago?
> > https://lists.nongnu.org/archive/html/gpsd-dev/2019-11/msg00004.html
>
> Yeah, I remember those. Those were alst cycle, I'm talking about this
> cycle.
Sure, there's no way to fix things in the past, but those questions
are still valid.
> Way too many patches mushed together that made no sense to me.
>
> I don't cross-compile, but others that do have not the problems you
> bring up, so I suspect some misunderstandings.
>
> The sysroot patch makes no sense. As used by scons, sysroot is a
> on the command line, yet you pull it from a non standard environment
> variable. Can't do both. Does not compute.
I'm pulling it the same way as other options from the very same group
of options are pulled. See bellow.
> The other patch removes an important build flag:
>
> - if config.env['python'] and config.env['target_python']:
> ^^^^^^^^^^^^^^^^^^^^
>
> That is how SConstruct flags not to do any python thing.
>
> Patches are great, but they can't just solve your problem and break
> things for others.
>
> If you want, let's discuss what the confusion is for the sysroot variable
> first. My quick take is you just did not notice it belongs on the
> command line as an option.
Fair enough. sysroot is listed in nonboolopts together with gpsd_group,
gpsd_user, max_clients, max_devices, (those seems not to be used anywhere,
btw) and others like prefix, python_coverage, target_python, etc.
Values of these variables are read as env['python_coverage'] and
my build script just does:
scons -C
/home/ladis/src/C-ITS.Devices.O2.Firmware/platform-imx6/build-target/gpsd-3.20 \
aivdm=no ashtech=no bluez=no clientdebug=no control_socket=yes
controlsend=yes \
coveraging=no dbus_export=yes debug=no earthmate=no evermore=no
force_global=yes \
fury=no fv18=no garmin=no garmintxt=no geostar=no gpsclock=no gpsd=yes \
gpsdclients=yes greis=no implicit_link=yes isync=no itrax=no
libdir=/usr/lib \
libgpsmm=no magic_hat=no manbuild=no minimal=yes mtk3301=no navcom=no
ncurses=yes \
netfeed=yes nmea0183=yes nmea2000=yes nostrip=yes ntrip=no
oceanserver=no \
oncore=no oscillator=no passthrough=no prefix=/usr profiling=no
python=yes \
python_libdir=/usr/lib/python3.7 qt=no reconfigure=yes rtcm104v2=no
rtcm104v3=no \
shared=yes shm_export=yes sirf=no skytraq=no socket_export=yes
squelch=yes \
superstar2=no sysconfdir=/etc \
sysroot=/home/ladis/src/C-ITS.Devices.O2.Firmware/platform-imx6/sysroot-target \
systemd=yes target=arm-v7a-linux-gnueabihf \
target_python=/home/ladis/src/C-ITS.Devices.O2.Firmware/platform-imx6/sysroot-cross/bin/python3.7
\
timeservice=no tnt=no tripmate=no tsip=no ublox=yes
udevdir=/usr/lib/udev usb=no xgps=no -j16
as you can see, sysroot is listed on the command line the same way as
other options [*]. So now that sysroot value is used like this
(SConstruct line 642):
# while this makes perfect sense
if env['target']:
for (name, toolname) in devenv:
env[name] = env['target'] + '-' + toolname
# why this?
if env['sysroot']:
env.MergeFlags({"CFLAGS": ["--sysroot=%s" % env['sysroot']]})
env.MergeFlags({"LINKFLAGS": ["--sysroot=%s" % env['sysroot']]})
Every single cross-compiler I've worked with so far is aware of it's
own headers and passing --sysroot= here makes it blind.
- if SConstruct uses sysroot as a toolchain sysroot it is the only
tool doing so this way and question is why it is doing so.
However it will work if:
- all libraries gpsd depends on are installed into toolchains sysroot.
This pollutes toolchain installation.
- toolchain sysroot is installed into staging area and then all
libraries are installed here. Unusual.
- if SConstruct is using sysroot as all other packages, passing --sysroot
to toolchain is just wrong.
I would deeply appreciate if someone could explain me how is this
SConstruct thing supposed to work.
Thank you,
ladis
[*] See here: https://git.pengutronix.de/cgit/ptxdist/tree/rules/gpsd.make#n55
and as PTXdist developers are trying to minimize out of tree patches and
upstream them, I hope we can find solution.
- master fails to build/check, Greg Troxel, 2020/01/25
- Re: master fails to build/check, Greg Troxel, 2020/01/25
- Re: master fails to build/check, Greg Troxel, 2020/01/25
- Re: master fails to build/check, Greg Troxel, 2020/01/25
- Re: master fails to build/check, Gary E. Miller, 2020/01/25
- Re: master fails to build/check, Ladislav Michl, 2020/01/30
- Re: master fails to build/check, Gary E. Miller, 2020/01/30
- Re: master fails to build/check,
Ladislav Michl <=
- Re: master fails to build/check, Ladislav Michl, 2020/01/31
- Re: master fails to build/check, Gary E. Miller, 2020/01/31
- Re: master fails to build/check, Ladislav Michl, 2020/01/31
- Re: master fails to build/check, Gary E. Miller, 2020/01/31
- Re: master fails to build/check, Ladislav Michl, 2020/01/31
- Re: master fails to build/check, Gary E. Miller, 2020/01/31
- Re: master fails to build/check, Gary E. Miller, 2020/01/31
- Re: master fails to build/check, Ladislav Michl, 2020/01/31
- Re: master fails to build/check, Gary E. Miller, 2020/01/31
- Re: master fails to build/check, Ladislav Michl, 2020/01/31