Re: MIPS build requires native expat lib (Was: [rtems-source-builder PATCH] rtems: Add back gsed that was remove by mistake)

2023-04-21 Thread Frank Kühndel

Hi Chris,

On 4/21/23 01:48, Chris Johns wrote:

So I believe I am closer to the root of the problem now but I do not know what
needs to be fixed.

All good. I think I have something solid to work on. I just need to find some
time to do this. It is important so it is high on my unfunded list.


If I can be of any help, let me know.
Frank

--
embedded brains GmbH & Co. KG
Herr Frank KÜHNDEL
Dornierstr. 4
82178 Puchheim
Germany
email: frank.kuehn...@embedded-brains.de
phone:  +49-89-18 94 741 - 23
mobile: +49-176-15 22 06 - 11

Registergericht: Amtsgericht München
Registernummer: HRA 117265
Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler
Unsere Datenschutzerklärung finden Sie hier:
https://embedded-brains.de/datenschutzerklaerung/
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Re: MIPS build requires native expat lib (Was: [rtems-source-builder PATCH] rtems: Add back gsed that was remove by mistake)

2023-04-20 Thread Chris Johns
On 21/4/2023 2:53 am, Frank Kühndel wrote:
> Hi Chris,
> 
> I compared the successful Debian-11 MIPS build with the failing AlmaLinux MIPS
> build.
> 
> The Debian 11 container has a native "expat.h" and "libexpat.a" installed (and
> the source-builder uses
> "rtems-source-builder/rtems/build/tmp/sb-1000/tools/rtems-mipstx39-gdb/opt/rtems/6/include/gmp.h"):

This is what I suspected. It seems like the paths are not right for the internal
staged libraries and I suspect my test systems has the header installed.

> 
> 
>   minna@e7a01fbe81fa:~/src$ find /usr -name expat.h
>   /usr/include/expat.h
>   minna@e7a01fbe81fa:~/src$ find /usr -name libexpat.\*
>   /usr/lib/x86_64-linux-gnu/libexpat.so
>   /usr/lib/x86_64-linux-gnu/libexpat.a
> 
> 
> With other words, the build on Debian is only successful because it uses the
> native "expat" from the OS. On Almalinux it is not installed so it fails. (The
> "expat" on Debian must be pulled in by some dependency from other needed 
> packages.)
> 
> The "6/rtems-mips.bset" build "gmp" and "gdb" twice but "expat" only once. In
> "tools/rtems-default-tools.bset" "gmp", "expat" and "gdb" are build the first 
> time:

The expat build is not internal and so this could be related. I made changes to
fix the internal builds and that may have broken the external staged build.

This raises a couple of questions:

1. Should expat be built if present on the system?

2. Should expat be an internal build?

Expat was added before I supported internal builds.

> 
> 
> %{with_rtems_dtc}
> %{with_rtems_expat}
> %{with_rtems_gmp}
> %{with_rtems_gsed}
> %{with_rtems_texinfo}
> %{with_rtems_gdb}
> %{with_rtems_binutils}
> %{with_rtems_gcc}
> %{with_rtems_tools}
> 
> 
> According to the log, after executing "tools/rtems-tools-6.cfg" there is a
> clean-up and all the above tools are cleaned away, including "gmp", "expat" 
> and
> "gdb", for example "expat":
> 
> 
> cleaning: expat-2.4.8-x86_64-linux-gnu-1
> [...]
> cleanup:
> /home/minna/src/rtems-source-builder/rtems/build/tmp/expat-2.4.8-x86_64-linux-gnu-1-1000
> removing:
> /home/minna/src/rtems-source-builder/rtems/build/tmp/expat-2.4.8-x86_64-linux-gnu-1-1000
> cleanup:
> /home/minna/src/rtems-source-builder/rtems/build/expat-2.4.8-x86_64-linux-gnu-1
> removing:
> /home/minna/src/rtems-source-builder/rtems/build/expat-2.4.8-x86_64-linux-gnu-1
> cleanup:
> /home/minna/src/rtems-source-builder/rtems/build/tmp/sb-1000/tools/rtems-default-tools
> removing:
> /home/minna/src/rtems-source-builder/rtems/build/tmp/sb-1000/tools/rtems-default-tools
> 
> 
> This is why it cannot be found later on and it is not in the remaining files.
> Afterwards "tools/rtems-mipstx39-gdb.bset" build "gmp" and "gdb" again but not
> "expat":
> 
> 
> devel/gmp-6.2.1
> tools/rtems-gdb-13.1
> 
> 
> This is the reason why this second "gdb" build finds "gmp" in
> "rtems-source-builder/rtems/build/tmp/sb-1000/tools/rtems-mipstx39-gdb/opt/rtems/6/include/gmp.h"
>  but not "expat.h". Yet, a copy of the whole stuff from the earlier 
> "tools/rtems-default-tools.bset" build is still in the 
> "rtems-source-builder/rtems/build/tmp/sb-1000-staging" tree. (Yet, it looks 
> like that at the end of the "tools/rtems-mipstx39-gdb.bset", the files from 
> second "gmp" build would overwrite the ones from first build in the 
> "sb-1000-staging" tree.
> 
> So I believe I am closer to the root of the problem now but I do not know what
> needs to be fixed.

All good. I think I have something solid to work on. I just need to find some
time to do this. It is important so it is high on my unfunded list.

Chris
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Re: MIPS build requires native expat lib (Was: [rtems-source-builder PATCH] rtems: Add back gsed that was remove by mistake)

2023-04-20 Thread Frank Kühndel

Hi Chris,

I compared the successful Debian-11 MIPS build with the failing 
AlmaLinux MIPS build.


The Debian 11 container has a native "expat.h" and "libexpat.a" 
installed (and the source-builder uses 
"rtems-source-builder/rtems/build/tmp/sb-1000/tools/rtems-mipstx39-gdb/opt/rtems/6/include/gmp.h"):



  minna@e7a01fbe81fa:~/src$ find /usr -name expat.h
  /usr/include/expat.h
  minna@e7a01fbe81fa:~/src$ find /usr -name libexpat.\*
  /usr/lib/x86_64-linux-gnu/libexpat.so
  /usr/lib/x86_64-linux-gnu/libexpat.a


With other words, the build on Debian is only successful because it uses 
the native "expat" from the OS. On Almalinux it is not installed so it 
fails. (The "expat" on Debian must be pulled in by some dependency from 
other needed packages.)


The "6/rtems-mips.bset" build "gmp" and "gdb" twice but "expat" only 
once. In "tools/rtems-default-tools.bset" "gmp", "expat" and "gdb" are 
build the first time:



%{with_rtems_dtc}
%{with_rtems_expat}
%{with_rtems_gmp}
%{with_rtems_gsed}
%{with_rtems_texinfo}
%{with_rtems_gdb}
%{with_rtems_binutils}
%{with_rtems_gcc}
%{with_rtems_tools}


According to the log, after executing "tools/rtems-tools-6.cfg" there is 
a clean-up and all the above tools are cleaned away, including "gmp", 
"expat" and "gdb", for example "expat":



cleaning: expat-2.4.8-x86_64-linux-gnu-1
[...]
cleanup: 
/home/minna/src/rtems-source-builder/rtems/build/tmp/expat-2.4.8-x86_64-linux-gnu-1-1000
removing: 
/home/minna/src/rtems-source-builder/rtems/build/tmp/expat-2.4.8-x86_64-linux-gnu-1-1000
cleanup: 
/home/minna/src/rtems-source-builder/rtems/build/expat-2.4.8-x86_64-linux-gnu-1
removing: 
/home/minna/src/rtems-source-builder/rtems/build/expat-2.4.8-x86_64-linux-gnu-1
cleanup: 
/home/minna/src/rtems-source-builder/rtems/build/tmp/sb-1000/tools/rtems-default-tools
removing: 
/home/minna/src/rtems-source-builder/rtems/build/tmp/sb-1000/tools/rtems-default-tools



This is why it cannot be found later on and it is not in the remaining 
files. Afterwards "tools/rtems-mipstx39-gdb.bset" build "gmp" and "gdb" 
again but not "expat":



devel/gmp-6.2.1
tools/rtems-gdb-13.1


This is the reason why this second "gdb" build finds "gmp" in 
"rtems-source-builder/rtems/build/tmp/sb-1000/tools/rtems-mipstx39-gdb/opt/rtems/6/include/gmp.h" 
but not "expat.h". Yet, a copy of the whole stuff from the earlier 
"tools/rtems-default-tools.bset" build is still in the 
"rtems-source-builder/rtems/build/tmp/sb-1000-staging" tree. (Yet, it 
looks like that at the end of the "tools/rtems-mipstx39-gdb.bset", the 
files from second "gmp" build would overwrite the ones from first build 
in the "sb-1000-staging" tree.


So I believe I am closer to the root of the problem now but I do not 
know what needs to be fixed.


Greetings,
fk


On 4/20/23 05:23, Chris Johns wrote:

Subject:
Re: [rtems-source-builder PATCH] rtems: Add back gsed that was remove by 
mistake

From:
Chris Johns 
Date:
4/20/23, 05:23

To:
Frank Kühndel , devel@rtems.org


On 19/4/2023 11:26 pm, Frank Kühndel wrote:

Hello Chris,

thanks for the introduction to package build. On AlmaLinux the file
rtems-source-builder/rtems/build/mipstx39-rtems6-gdb-13.1-x86_64-linux-gnu-1/build/gdb/config.log
 (attached) contains this error:


configure:21340: gcc -O2 -g -pipe
-I/home/minna/src/rtems-source-builder/rtems/build/tmp/sb-1000/tools/rtems-mipstx39-gdb/opt/rtems/6/include
 -o conftest -g -O2 
-L/home/minna/src/rtems-source-builder/rtems/build/tmp/sb-1000/tools/rtems-mipstx39-gdb/opt/rtems/6/lib
 conftest.c -lm -ldl  -lexpat >&5
conftest.c:53:10: fatal error: expat.h: No such file or directory
  #include "expat.h"
   ^
compilation terminated.


The include file and the library would be in

rtems-source-builder/rtems/build/tmp/sb-1000-staging/include/expat.h

Is the staging include path in the build flags for GDB?


rtems-source-builder/rtems/build/tmp/sb-1000-staging/lib/libexpat.a
rtems-source-builder/rtems/build/tmp/sb-1000-staging/lib/libexpat.la

The directories mentioned in the gcc-invokation contain only

     84 -rw-r--r--   1  minna    users   84084 Apr 19 13:19
rtems-source-builder/rtems/build/tmp/sb-1000/tools/rtems-mipstx39-gdb/opt/rtems/6/include/gmp.h

and

    6952 -rw-r--r--   1  minna    users 7115648 Apr 19 13:19
rtems-source-builder/rtems/build/tmp/sb-1000/tools/rtems-mipstx39-gdb/opt/rtems/6/lib/libgmp.a
   4 -rwxr-xr-x   1  minna    users 968 Apr 19 13:19
rtems-source-builder/rtems/build/tmp/sb-1000/tools/rtems-mipstx39-gdb/opt/rtems/6/lib/libgmp.la
   4 drwxr-xr-x   2  minna    users    4096 Apr 19 13:19
rtems-source-builder/rtems/build/tmp/sb-1000/tools/rtems-mipstx39-gdb/opt/rtems/6/lib/pkgconfig
   4 -rw-r--r--   1  minna    users 257 Apr 19 13:19
rtems-source-builder/rtems/build/tmp/sb-1000/tools/rtems-mipstx39-gdb/opt/rtems/6/lib/pkgconfig/gmp.pc

Just for the records:

PARAM_ARCH="mips"
PARAM_RTEMS_VERSION="6"
PARAM_RSB_GIT