[RTEMS Project] #4706: Installed header break C++

RTEMS trac trac at rtems.org
Fri Aug 19 06:31:52 UTC 2022


#4706: Installed header break C++
-------------------------+--------------------------
 Reporter:  Chris Johns  |       Owner:  Chris Johns
     Type:  defect       |      Status:  assigned
 Priority:  normal       |   Milestone:  6.1
Component:  rtems        |     Version:  6
 Severity:  normal       |  Resolution:
 Keywords:               |  Blocked By:
 Blocking:               |
-------------------------+--------------------------

Comment (by Chris Johns):

 Adding `RTEMS_SMP` generates the following:
 {{{
 In file included from ../cxx-headers.cc:28:
 /opt/work/rtems/6-bsps/aarch64-rtems6/xilinx_versal_lp64_vck190/lib/include/bsp
 /irq-generic.h: In function 'void
 bsp_interrupt_entry_store_release(rtems_interrupt_entry**,
 rtems_interrupt_entry*)':
 /opt/work/rtems/6-bsps/aarch64-rtems6/xilinx_versal_lp64_vck190/lib/include/bsp
 /irq-generic.h:405:71: error: invalid conversion from
 'rtems_interrupt_entry*' to 'std::atomic<long unsigned
 int>::__integral_type' {aka 'long unsigned int'} [-fpermissive]
   405 |   _Atomic_Store_uintptr(
       |
 ^
       |
 |
       |
 rtems_interrupt_entry*
 In file included from
 /opt/work/rtems/6-bsps/aarch64-rtems6/xilinx_versal_lp64_vck190/lib/include/rtems/score/cpustdatomic.h:63,
                  from
 /opt/work/rtems/6-bsps/aarch64-rtems6/xilinx_versal_lp64_vck190/lib/include/rtems/score/cpuatomic.h:40,
                  from
 /opt/work/rtems/6-bsps/aarch64-rtems6/xilinx_versal_lp64_vck190/lib/include/rtems/score/atomic.h:40,
                  from
 /opt/work/rtems/6-bsps/aarch64-rtems6/xilinx_versal_lp64_vck190/lib/include/rtems/score/smplockticket.h:44,
                  from
 /opt/work/rtems/6-bsps/aarch64-rtems6/xilinx_versal_lp64_vck190/lib/include/rtems/score/smplock.h:67,
                  from
 /opt/work/rtems/6-bsps/aarch64-rtems6/xilinx_versal_lp64_vck190/lib/include/rtems/score/isrlock.h:41,
                  from
 /opt/work/rtems/6-bsps/aarch64-rtems6/xilinx_versal_lp64_vck190/lib/include/rtems/rtems/intr.h:70,
                  from
 /opt/work/rtems/6-bsps/aarch64-rtems6/xilinx_versal_lp64_vck190/lib/include/rtems.h:69,
                  from
 /opt/work/rtems/6-bsps/aarch64-rtems6/xilinx_versal_lp64_vck190/lib/include/bsp
 /default-initial-extension.h:40,
                  from
 /opt/work/rtems/6-bsps/aarch64-rtems6/xilinx_versal_lp64_vck190/lib/include/bsp.h:49,
                  from ../cxx-headers.cc:12:
 /opt/work/rtems/6/lib/gcc/aarch64-rtems6/12.1.1/include/c++/atomic:904:40:
 note:   initializing argument 1 of 'constexpr std::atomic<long unsigned
 int>::atomic(__integral_type)'
   904 |       constexpr atomic(__integral_type __i) noexcept :
 __base_type(__i) { }
       |                        ~~~~~~~~~~~~~~~~^~~
 }}}
 It looks like the `<Atomic_Uintptr*>` cast is not working.

 I will ignore SMP builds but I think this should be **fixed** for RTEMS 6.

--
Ticket URL: <http://devel.rtems.org/ticket/4706#comment:2>
RTEMS Project <http://www.rtems.org/>
RTEMS Project


More information about the bugs mailing list