Hello world fails
Ben Leone
bleone at ast-science.com
Thu Jul 13 13:29:36 UTC 2023
I ran into this issue as well with the hello world and building other applications using waf when starting a new project. It looks like the cause of the issue was changes made to rtems_waf in this commit here: https://git.rtems.org/rtems_waf/commit/?id=c721249146a510a6746b37e7d731cb1467f91f48
For a quick fix, I just reverted the changes back to what they were before and the hello world and building applications seemed to work again. Still new to RTEMS myself but for long term, this probably isn't the correct solution so if someone has a detailed way to use the bsp_configure function in the wscript to avoid causing the arch_bsp iteration issue, that would be helpful!
Ben
________________________________
From: users <users-bounces at rtems.org> on behalf of Joel Sherrill <joel at rtems.org>
Sent: Wednesday, July 12, 2023 6:14 PM
To: Brett Sterling <brett.sterling at odysseysr.com>
Cc: users at rtems.org <users at rtems.org>
Subject: Re: Hello world fails
You don't often get email from joel at rtems.org. Learn why this is important<https://aka.ms/LearnAboutSenderIdentification>
On Wed, Jul 12, 2023 at 9:10 AM Brett Sterling <brett.sterling at odysseysr.com<mailto:brett.sterling at odysseysr.com>> wrote:
Thank you for pointing out my error. My apologies - as I said, this is my first time working with RTEMS so I'm sorry I mis-stated.
In the example, the "RTEMS tools suite prefix" is '$HOME/quick-start/rtems/6'.
When I was running through the example, my "RTEMS tools suite prefix" is '$HOME/src/rtems/quick-start/rtems/6' (as shown in what I typed :-) ).
The reason I started this thread is because I'm not the only one having problems with https://docs.rtems.org/branches/master/user/start/app.html - a co-worker was also unable to follow these instructions (because it appears that the 'waf' execution is looking for the wrong directory).
If the directories in the instructions are inconsistent, please file a ticket. Have another new experience. :)
When I teach the Open Class, I use this structure:
HOME
rtems-class
tools
6
rtems, rtems-source-builder, rtems-libbsd, rtems-examples and other source repositories at the same level
prefix building RTEMS tools and RTEMS itself is ${HOME}/rtems-class/tools/6
You usually end up adding ${HOME}/rtems-class/tools/6/bin to your PATH.
There is no required naming/paths but you do need to be consistent. There is a place for source and a PREFIX for installing.
Confusing things more the BSP and RTEMS Tools do NOT have to use the same PREFIX. :)
I'm open to suggestions of things to try, but in order to clear up any confusion, I'm going to redo the "Quick Start" following it verbatim so that there is less confusion as to what problem I'm having 🙂
If verbatim from that doesn't work, then we need to figure out what's wrong in the instructions. Hopefully my alternative version above is correct and gives you another view of the paths/prefixes.
Thanks to everyone for the help, and my apologies for the 'noob' errors.
Brett
________________________________
From: Gedare Bloom <gedare at rtems.org<mailto:gedare at rtems.org>>
Sent: Tuesday, July 11, 2023 12:29 PM
To: Brett Sterling <brett.sterling at odysseysr.com<mailto:brett.sterling at odysseysr.com>>
Cc: joel at rtems.org<mailto:joel at rtems.org> <joel at rtems.org<mailto:joel at rtems.org>>; users at rtems.org<mailto:users at rtems.org> <users at rtems.org<mailto:users at rtems.org>>
Subject: Re: Hello world fails
On Tue, Jul 11, 2023 at 9:54 AM Brett Sterling
<brett.sterling at odysseysr.com<mailto:brett.sterling at odysseysr.com>> wrote:
>
> Thanks for the response. However, I think I need a little clarification.
>
> In https://usg02.safelinks.protection.office365.us/?url=https%3A%2F%2Fdocs.rtems.org%2Fbranches%2Fmaster%2Fuser%2Fstart%2Fapp.html&data=05%7C01%7C%7C925117adb0434c535d4108db823cc082%7Cd761ffacf6be45b88f6f288a59577095%7C0%7C0%7C638246969685266444%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=rmj7IwfhREwodmwv8WSXXcFUa3KCvXgTW5GBKZ%2Fh2ic%3D&reserved=0<https://docs.rtems.org/branches/master/user/start/app.html>, it says:
>
> ./waf configure --rtems=$HOME/quick-start/rtems/6 --rtems-bsp=sparc/erc32
>
> My prefix is: '$HOME/src/rtems', so I used ' ./waf configure --rtems=$HOME/src/rtems/quick-start/rtems/6 --rtems-bsp=sparc/erc32'.
>
If your prefix is '${HOME}/src/rtems' then your rtems should be
'${HOME}/src/rtems'
There is no extra magic that appends "quick-start/rtems/6" to your
prefix during the installation. Since you chose $HOME/src/rtems as
your prefix, then everywhere that the original prefix of
$HOME/quick-start/rtems/6 gets used you should replace with
$HOME/src/rtems.
> I believe this is equivalent to what you suggested, except that you have '--rtems-bsps' instead of '--rtems-bsp' (I think mine is the correct syntax).
>
> As for "pointing to the share directory', I didn't do that - that was the error message printed when I tried to configure.
>
> I'm not sure what you mean by pointing to the wrong directories - I followed the web page directions specifically. However, I also admit I may have done something incorrectly, so if you could point to the thing I should change, I'm glad to do so :-)
>
> Thanks again,
> Brett
>
> ________________________________
> From: Joel Sherrill <joel at rtems.org<mailto:joel at rtems.org>>
> Sent: Tuesday, July 11, 2023 9:24 AM
> To: Brett Sterling <brett.sterling at odysseysr.com<mailto:brett.sterling at odysseysr.com>>
> Cc: users at rtems.org<mailto:users at rtems.org> <users at rtems.org<mailto:users at rtems.org>>
> Subject: Re: Hello world fails
>
> CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you recognize the sender and know the content is safe.
>
>
>
> On Tue, Jul 11, 2023 at 8:35 AM Brett Sterling <brett.sterling at odysseysr.com<mailto:brett.sterling at odysseysr.com>> wrote:
>
> I've been working my way through the 'Quick Start' and everything was going pretty well until https://usg02.safelinks.protection.office365.us/?url=https%3A%2F%2Fdocs.rtems.org%2Fbranches%2Fmaster%2Fuser%2Fstart%2Fapp.html&data=05%7C01%7C%7C925117adb0434c535d4108db823cc082%7Cd761ffacf6be45b88f6f288a59577095%7C0%7C0%7C638246969685266444%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=rmj7IwfhREwodmwv8WSXXcFUa3KCvXgTW5GBKZ%2Fh2ic%3D&reserved=0<https://docs.rtems.org/branches/master/user/start/app.html>.
>
> I get to the point where I'm supposed to 'configure', and I get the following:
>
> ~/src/rtems/quick-start/app/hello$ ./waf configure --rtems=$HOME/src/rtems/quick-start/rtems/6 --rtems-bsp=sparc/erc32
> Setting top to : /home/bsterling/src/rtems/quick-start/app/hello
> Setting out to : /home/bsterling/src/rtems/quick-start/app/hello/build
> RTEMS path is not valid, "/home/bsterling/src/rtems/quick-start/rtems/6/share/rtems6" not found.
> (complete log in /home/bsterling/src/rtems/quick-start/app/hello/build/config.log)
>
>
> I have this in my handy scripts for building rtems-examples:
>
> CPU=powerpc
> BSP=psim
> ./waf configure --rtems=${HOME}/rtems-work/tools/6/bsp-install \
> --rtems-tools=${HOME}/rtems-work/tools/6 \
> --rtems-bsps=${CPU}/${BSP}
>
> That --rtems points to the --prefix directory you used when you built and installed RTEMS.
> This is from my install:
>
> $ pwd
> /home/joel/rtems-work/tools/6/bsp-install/sparc-rtems6/leon3
> $ ls
> lib make Makefile.inc
>
> --rtems-tools directory should have a bin/TARGET-gcc under it.
>
> --rtems-bsps looks OK
>
> I think you have just pointed to the wrong directories. It should be similar to
> how I build rtems-examples.
>
> --joel
>
>
>
>
> I have verified that all of the source files contain only what is described on that page.
>
> When I look in the rtems/6/share directory, I have the following:
>
> ~/src/rtems/quick-start/rtems/6/share$ ls -l
> total 32
> drwxr-xr-x 3 bsterling osr 4096 Jul 10 14:39 doc
> drwxr-xr-x 3 bsterling osr 4096 Jul 10 15:00 gcc-12.3.1
> drwxr-xr-x 5 bsterling osr 4096 Jul 10 15:02 gdb
> drwxr-xr-x 2 bsterling osr 4096 Jul 10 15:01 iconv_data
> drwxr-xr-x 2 bsterling osr 4096 Jul 10 15:02 info
> drwxr-xr-x 2 bsterling osr 4096 Jul 10 14:43 locale
> drwxr-xr-x 5 bsterling osr 4096 Jul 10 15:00 man
> drwxr-xr-x 9 bsterling osr 4096 Jul 10 15:02 rtems
>
>
> Normally you don't point all the way down to share directory
>
>
> I tried renaming 'rtems' to 'rtems6', but that resulted in the following errors:
>
> ~/src/rtems/quick-start/app/hello$ ./waf configure --rtems=$HOME/src/rtems/quick-start/rtems/6 --rtems-bsp=sparc/erc32
> Setting top to : /home/bsterling/src/rtems/quick-start/app/hello
> Setting out to : /home/bsterling/src/rtems/quick-start/app/hello/build
> Traceback (most recent call last):
> File "/home/bsterling/src/rtems/quick-start/app/hello/.waf3-2.0.19-1f3c580272b15a03d2566843c5fe872a/waflib/Scripting.py", line 119, in waf_entry_point
> run_commands()
> File "/home/bsterling/src/rtems/quick-start/app/hello/.waf3-2.0.19-1f3c580272b15a03d2566843c5fe872a/waflib/Scripting.py", line 182, in run_commands
> ctx=run_command(cmd_name)
> File "/home/bsterling/src/rtems/quick-start/app/hello/.waf3-2.0.19-1f3c580272b15a03d2566843c5fe872a/waflib/Scripting.py", line 173, in run_command
> ctx.execute()
> File "/home/bsterling/src/rtems/quick-start/app/hello/.waf3-2.0.19-1f3c580272b15a03d2566843c5fe872a/waflib/Configure.py", line 85, in execute
> super(ConfigurationContext,self).execute()
> File "/home/bsterling/src/rtems/quick-start/app/hello/.waf3-2.0.19-1f3c580272b15a03d2566843c5fe872a/waflib/Context.py", line 92, in execute
> self.recurse([os.path.dirname(g_module.root_path)])
> File "/home/bsterling/src/rtems/quick-start/app/hello/.waf3-2.0.19-1f3c580272b15a03d2566843c5fe872a/waflib/Context.py", line 133, in recurse
> user_function(self)
> File "/home/bsterling/src/rtems/quick-start/app/hello/wscript", line 26, in configure
> rtems.configure(conf, bsp_configure = bsp_configure)
> File "/home/bsterling/src/rtems/quick-start/app/hello/rtems_waf/rtems.py", line 190, in configure
> check_options(conf,
> File "/home/bsterling/src/rtems/quick-start/app/hello/rtems_waf/rtems.py", line 496, in check_options
> arch_bsps = _check_arch_bsps(rtems_bsps, rtems_config, rtems_path,
> File "/home/bsterling/src/rtems/quick-start/app/hello/rtems_waf/rtems.py", line 851, in _check_arch_bsps
> installed = _find_installed_arch_bsps(config, path, archs, version)
> File "/home/bsterling/src/rtems/quick-start/app/hello/rtems_waf/rtems.py", line 823, in _find_installed_arch_bsps
> if _arch_from_arch_bsp(f[:-3]) in archs:
> File "/home/bsterling/src/rtems/quick-start/app/hello/rtems_waf/rtems.py", line 862, in _arch_from_arch_bsp
> rtems_field_index = next(i for i, field in enumerate(fields) if field.startswith('rtems'))
> StopIteration
>
>
> Please note that I started with rtems 6 because when I tried to use the released rtems 5 'Getting Started', I couldn't get past the first few steps. That being said, I'm glad to go back to any other version if necessary, as I'm just trying to get to the point where I can work with RTEMS.
>
> Thanks in advance for any help!
>
> I'm using Ubuntu 22.04.2 LTS, and have followed the instructions in the 'Host Machine' setup section (as I mentioned, everything was working great up until this step). The only way I was able to get things working was to clone the git repositories. I'm on the 'master' branch.
> _______________________________________________
> users mailing list
> users at rtems.org<mailto:users at rtems.org>
> https://usg02.safelinks.protection.office365.us/?url=http%3A%2F%2Flists.rtems.org%2Fmailman%2Flistinfo%2Fusers&data=05%7C01%7C%7C925117adb0434c535d4108db823cc082%7Cd761ffacf6be45b88f6f288a59577095%7C0%7C0%7C638246969685266444%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=Va5M9b%2BjcpRnlfqEVSfDMH%2FhbVAstaeRD2t74nFeVYM%3D&reserved=0<http://lists.rtems.org/mailman/listinfo/users>
>
> _______________________________________________
> users mailing list
> users at rtems.org<mailto:users at rtems.org>
> https://usg02.safelinks.protection.office365.us/?url=http%3A%2F%2Flists.rtems.org%2Fmailman%2Flistinfo%2Fusers&data=05%7C01%7C%7C925117adb0434c535d4108db823cc082%7Cd761ffacf6be45b88f6f288a59577095%7C0%7C0%7C638246969685266444%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=Va5M9b%2BjcpRnlfqEVSfDMH%2FhbVAstaeRD2t74nFeVYM%3D&reserved=0<http://lists.rtems.org/mailman/listinfo/users>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/users/attachments/20230713/d1f0a7dc/attachment-0001.htm>
More information about the users
mailing list