[PATCH rtems-net-legacy] nfsclient: Build nfsclient from the top level netlegacy script
Chris Johns
chrisj at rtems.org
Tue Apr 6 22:26:16 UTC 2021
On 7/4/21 7:40 am, Gedare Bloom wrote:
> On Tue, Apr 6, 2021 at 2:24 PM Chris Johns <chrisj at rtems.org> wrote:
>>
>>
>>
>>> On 4 Apr 2021, at 11:06 am, Vijay Kumar Banerjee <vijay at rtems.org> wrote:
>>>
>>> ---
>>> netlegacy.py | 18 +++++++++++++++++-
>>> nfsclient/wscript | 1 +
>>> wscript | 2 +-
>>> 3 files changed, 19 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/netlegacy.py b/netlegacy.py
>>> index 89176e6..f470da2 100644
>>> --- a/netlegacy.py
>>> +++ b/netlegacy.py
>>> @@ -55,6 +55,13 @@ def build(bld):
>>> for s in os.listdir('./pppd') if s[-2:] == '.c']
>>> telnetd_source = [os.path.join('./telnetd', s)
>>> for s in os.listdir('telnetd') if s[-2:] == '.c']
>>> + nfs_source = []
>>> + for root, dirs, files in os.walk('./nfsclient'):
>>
>> The `./` seems wrong to me. It may work on Windows if the path parsing can handle / and \.
>>
>>> + for name in files:
>>> + ext = os.path.splitext(name)[1]
>>> + if ext == '.c':
>>> + src_root = os.path.split(root)[1]
>>> + nfs_source.append(os.path.join('./nfsclient', src_root, name))
>>
>> And here where join() handles the separator but you have one embedded in the path.
>>
>>>
>>> bsp_dirs, bsp_sources = bsp_drivers.bsp_files(bld)
>>>
>>> @@ -67,6 +74,7 @@ def build(bld):
>>> './bsps/include'])
>>> arch_lib_path = rtems.arch_bsp_lib_path(bld.env.RTEMS_VERSION,
>>> bld.env.RTEMS_ARCH_BSP)
>>> + lib_path = os.path.join(bld.env.PREFIX, arch_lib_path)
>>> include_path.append(os.path.relpath(os.path.join(bld.env.PREFIX,
>>> arch_lib_path)))
>>> include_path.append(os.path.relpath(os.path.join(bld.env.PREFIX,
>>> @@ -74,6 +82,8 @@ def build(bld):
>>> 'include')))
>>> include_path.append('./bsps/include/libchip')
>>
>> Oh and here!
>>
>>>
>>> + bld.read_stlib('rtemsbsp', paths=[lib_path])
>>> +
>>> if bsp in bsp_dirs:
>>> include_path.extend(bsp_dirs[bsp])
>>>
>>> @@ -108,8 +118,14 @@ def build(bld):
>>> use='networking',
>>> source=telnetd_source)
>>>
>>> + bld.stlib(target='nfs',
>>> + features='c',
>>> + includes=ip,
>>> + use=['rtemsbsp', 'networking'],
>>> + source=nfs_source)
>>> +
>>> bld.install_files(os.path.join('${PREFIX}', arch_lib_path),
>>> - ["libnetworking.a", 'libpppd.a', 'libtelnetd.a'])
>>> + ["libnetworking.a", 'libpppd.a', 'libtelnetd.a', 'libnfs.a'])
>>> bld.install_files(os.path.join('${PREFIX}', arch_lib_path,
>>> 'include', 'libchip'),
>>> [os.path.join('./bsps/include/libchip/', f)
>>
>> You may need a wrapper or something else ...
>>
>> I think we touched on this once before when I suggested the waf Node support (I think?). This is a hole you can end up heading down when you manage paths explicitly. I suggest you step back and decide on a way to handle this for all platforms.
>>
> Yes, thanks. I asked him to test on Windows, but he's getting bit the
> gdb tool won't build. We'll need to get this all sorted out before
> release hits...
Ah yes that makes things harder. I have sort of had a look at that problem but I
have been busy with other things. I think we need to look at moving RTEMS to
release GDB versions. I was hoping Sebastian could let us know why we are using
git hashes.
That aside I think embedding `/` in paths explicitly is problematic so testing
may only indicate it works in some cases and on Windows there are a lot more way
to run waf than Unix.
Chris
More information about the devel
mailing list