From 8fd021bbb30843dc91e5bac228b5d463b45530ae Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Thu, 14 Aug 2025 02:17:34 +0200 Subject: [PATCH] m68k: Do not assign to a linker symbol The _VBR is a symbol defined by linker scripts. You cannot change this value at runtime. The BSP initialization has to ensure that m68k_set_vbr() is only set to _VBR. Close #5210. --- cpukit/score/cpu/m68k/include/rtems/score/m68k.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpukit/score/cpu/m68k/include/rtems/score/m68k.h b/cpukit/score/cpu/m68k/include/rtems/score/m68k.h index 8e64bbd2dc..e656bf3ff2 100644 --- a/cpukit/score/cpu/m68k/include/rtems/score/m68k.h +++ b/cpukit/score/cpu/m68k/include/rtems/score/m68k.h @@ -420,8 +420,8 @@ extern char _VBR[]; #define m68k_set_vbr( _vbr ) \ do { \ + _Assert( (uintptr_t) ( _vbr ) == (uintptr_t) _VBR ); \ __asm__ volatile ( "movec %0,%%vbr " : : "r" (_vbr)); \ - _VBR = (void *)_vbr; \ } while(0) #else