[RTEMS Project] #4916: Canadian cross building not staging GCC

RTEMS trac trac at rtems.org
Thu Jun 8 12:30:12 UTC 2023


#4916: Canadian cross building not staging GCC
-----------------------+--------------------
  Reporter:  hguerard  |      Owner:  (none)
      Type:  defect    |     Status:  new
  Priority:  normal    |  Milestone:
 Component:  tool/rsb  |    Version:  6
  Severity:  normal    |   Keywords:  cxc
Blocked By:            |   Blocking:
-----------------------+--------------------
 I am performing a canadian cross compilation on Linux Ubuntu for Windows
 targeting the ARM architecture using the following command:

 {{{
 ./source-builder/sb-set-builder --prefix=/home/vagrant/rtems-
 toolchain/output --trace--host=i686-w64-mingw32 6/rtems-arm
 }}}
 The build completes successfully. When I inspected the content of the
 output folder (/home/vagrant/rtems-toolchain/output) and GCC is missing.
 For instance, the file ''/home/vagrant/rtems-toolchain/output/bin/arm-
 rtems6-gcc.exe'' is not present.

 When inspecting the log (with trace enabled), I see 7 builds:

 {{{
 _bset:  2: mode: staging: builds: dtc-1.6.1-i686-w64-mingw32-1,
 expat-2.4.8-i686-w64-mingw32-1, gmp-6.2.1-i686-w64-mingw32-1, arm-
 rtems6-gdb-13.1-i686-w64-mingw32-1, arm-
 rtems6-binutils-2.39-i686-w64-mingw32-1, arm-rtems6-gcc-cf59d86-newlib-
 17ac400-i686-w64-mingw32-1, rtems-tools-
 c8bf7309332990a52ae98ed3926c0f62984e8193-1
 }}}

 All builds get installed expects for
 {{{
 arm-rtems6-binutils-2.39-i686-w64-mingw32-1, arm-rtems6-gcc-cf59d86
 -newlib-17ac400-i686-w64-mingw32-1
 }}}
 because the build-installable is flagged as **not installable**.

 {{{
 _build: installable: host=i686-w64-mingw32 build=x86_64-linux-gnu no-
 install=False Cxc=True disable_installing=False disabled=False
 _bset:   : staging: installable=False build-installable=False
 }}}

 When inspecting the build.py file, the condition is as follow:

 {{{
     def installable(self):
         _host = self.config.expand('%{_host}')
         _build = self.config.expand('%{_build}')
         _canadian_cross = self.canadian_cross()
         if self.macros.get('_disable_installing') and \
            self.config.expand('%{_disable_installing}') == 'yes':
             _disable_installing = True
         else:
             _disable_installing = False
         _no_install = self.opts.no_install()
         log.trace('_build: installable: host=%s build=%s ' \
                   'no-install=%r Cxc=%r disable_installing=%r disabled=%r'
 % \
                   (_host, _build, _no_install, _canadian_cross,
 _disable_installing, \
                    self.disabled()))
         return len(_host) and len(_build) and \
             not self.disabled() and \
             not _disable_installing and \
             not _canadian_cross
 }}}
 Because the build is marked as canadian_cross, it is not installed. Why is
 that? [https://git.rtems.org/rtems-source-builder/commit/source-
 builder/sb/build.py?id=6444d5806dbdd66dd23a18df824872eb84fbe248 This
 change has been introduced in this commit.]

 In my case, I have patched the build.py file to remove the **not
 _canadian_cross** condition in the return and it resolved my issue.

--
Ticket URL: <http://devel.rtems.org/ticket/4916>
RTEMS Project <http://www.rtems.org/>
RTEMS Project


More information about the bugs mailing list