[2/2] oeqa/buildoptions: check that Fortran code actually cross-compiles

Message ID 20190624111324.8921-2-ross.burton@intel.com
State Superseded
Headers show
Series
  • [1/2] fortran-helloworld: add a very dumb Fortran Hello World for testing
Related show

Commit Message

Ross Burton June 24, 2019, 11:13 a.m.
Don't just test that we can build the cross-compiler, but test that it actually
can cross-compile some Fortran.

Signed-off-by: Ross Burton <ross.burton@intel.com>

---
 meta/lib/oeqa/selftest/cases/buildoptions.py | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

-- 
2.11.0

-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Comments

Richard Purdie June 24, 2019, 4:08 p.m. | #1
On Mon, 2019-06-24 at 12:13 +0100, Ross Burton wrote:
> Don't just test that we can build the cross-compiler, but test that it actually

> can cross-compile some Fortran.

> 

> Signed-off-by: Ross Burton <ross.burton@intel.com>

> ---

>  meta/lib/oeqa/selftest/cases/buildoptions.py | 7 ++-----

>  1 file changed, 2 insertions(+), 5 deletions(-)

> 

> diff --git a/meta/lib/oeqa/selftest/cases/buildoptions.py b/meta/lib/oeqa/selftest/cases/buildoptions.py

> index 3ad65b40341..6a5378d3ff6 100644

> --- a/meta/lib/oeqa/selftest/cases/buildoptions.py

> +++ b/meta/lib/oeqa/selftest/cases/buildoptions.py

> @@ -162,17 +162,14 @@ class ArchiverTest(OESelftestTestCase):

>          self.assertTrue((g.glob(src_file_glob) and g.glob(tar_file_glob)), "Couldn't find .src.rpm and .tar.gz files under %s/allarch*/xcursor*" % deploy_dir_src)

>  

>  class ToolchainOptions(OESelftestTestCase):

> -

>      def test_toolchain_fortran(self):

>          """

> -        Test whether we can enable and build fortran and its supporting libraries

> +        Test that Fortran works by building a Hello, World binary.

>          """

>  

>          features = 'FORTRAN_forcevariable = ",fortran"\n'

> -        features += 'RUNTIMETARGET_append_pn-gcc-runtime = " libquadmath"\n'


Please don't remove that. We need to check libquadmath builds.

>          self.write_config(features)

> -

> -        bitbake('gcc-runtime libgfortran')

> +        bitbake('fortran-helloworld')


Doesn't this stop testing libgfortran builds too?

Cheers,

Richard

-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core
Ross Burton June 24, 2019, 4:21 p.m. | #2
On Mon, 24 Jun 2019 at 17:09, Richard Purdie
<richard.purdie@linuxfoundation.org> wrote:
> > -        features += 'RUNTIMETARGET_append_pn-gcc-runtime = " libquadmath"\n'

>

> Please don't remove that. We need to check libquadmath builds.


From gcc-runtime.inc:

RUNTIMETARGET = "${RUNTIMELIBSSP} libstdc++-v3 libgomp libatomic
${RUNTIMELIBITM} \
    ${@bb.utils.contains_any('FORTRAN', [',fortran',',f77'],
'libquadmath', '', d)} \
"

So this is redundant?

> >          self.write_config(features)

> > -

> > -        bitbake('gcc-runtime libgfortran')

> > +        bitbake('fortran-helloworld')

>

> Doesn't this stop testing libgfortran builds too?


Possibly.  I admit I don't know what libgfortran is for considering my
test builds apparently without it. :)

Ross
-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core
Richard Purdie June 24, 2019, 4:24 p.m. | #3
On Mon, 2019-06-24 at 17:21 +0100, Burton, Ross wrote:
> On Mon, 24 Jun 2019 at 17:09, Richard Purdie

> <richard.purdie@linuxfoundation.org> wrote:

> > > -        features += 'RUNTIMETARGET_append_pn-gcc-runtime = "

> > > libquadmath"\n'

> > 

> > Please don't remove that. We need to check libquadmath builds.

> 

> From gcc-runtime.inc:

> 

> RUNTIMETARGET = "${RUNTIMELIBSSP} libstdc++-v3 libgomp libatomic

> ${RUNTIMELIBITM} \

>     ${@bb.utils.contains_any('FORTRAN', [',fortran',',f77'],

> 'libquadmath', '', d)} \

> "

> 

> So this is redundant?


Yes, that was indeed fixed properly.

meta/conf/local.conf.sample.extended needs the same fix.

> > >          self.write_config(features)

> > > -

> > > -        bitbake('gcc-runtime libgfortran')

> > > +        bitbake('fortran-helloworld')

> > 

> > Doesn't this stop testing libgfortran builds too?

> 

> Possibly.  I admit I don't know what libgfortran is for considering

> my test builds apparently without it. :)


That maybe but I'd still like to test that it builds given it was added
due to problems where it stopped building and people got upset...

Cheers,

Richard


-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core
Ross Burton June 24, 2019, 4:27 p.m. | #4
On Mon, 24 Jun 2019 at 17:25, <richard.purdie@linuxfoundation.org> wrote:

> That maybe but I'd still like to test that it builds given it was added

> due to problems where it stopped building and people got upset...


v2 sent.

Ross
-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Patch

diff --git a/meta/lib/oeqa/selftest/cases/buildoptions.py b/meta/lib/oeqa/selftest/cases/buildoptions.py
index 3ad65b40341..6a5378d3ff6 100644
--- a/meta/lib/oeqa/selftest/cases/buildoptions.py
+++ b/meta/lib/oeqa/selftest/cases/buildoptions.py
@@ -162,17 +162,14 @@  class ArchiverTest(OESelftestTestCase):
         self.assertTrue((g.glob(src_file_glob) and g.glob(tar_file_glob)), "Couldn't find .src.rpm and .tar.gz files under %s/allarch*/xcursor*" % deploy_dir_src)
 
 class ToolchainOptions(OESelftestTestCase):
-
     def test_toolchain_fortran(self):
         """
-        Test whether we can enable and build fortran and its supporting libraries
+        Test that Fortran works by building a Hello, World binary.
         """
 
         features = 'FORTRAN_forcevariable = ",fortran"\n'
-        features += 'RUNTIMETARGET_append_pn-gcc-runtime = " libquadmath"\n'
         self.write_config(features)
-
-        bitbake('gcc-runtime libgfortran')
+        bitbake('fortran-helloworld')
 
 class SourceMirroring(OESelftestTestCase):
     # Can we download everything from the Yocto Sources Mirror over http only