I am guessing here that you use -Wpbluepill to select the bluepill
Have a look at the code for the stm32f103rb:
procedure USART1_IRQHandler; external name 'USART1_IRQHandler';
procedure USART2_IRQHandler; external name 'USART2_IRQHandler';
procedure USART3_IRQHandler; external name 'USART3_IRQHandler';
I case you used -Wpstm32f10x (do not know the exact name here) then
procedure USART1_global_interrupt; external name 'USART1_global_interrupt';
procedure USART2_global_interrupt; external name 'USART2_global_interrupt';
procedure USART3_global_interrupt; external name 'USART3_global_interrupt';
can be found in the unit file for the chip.
This difference comes from the fact that the headers I created are automagically converted from CMSIS Sources and for that reason they are available for close to all cortex-m* chips available from ST today.
The older Headers were hand-crafted (I guess) so they do not follow the naming that is used in the CMSIS sources and may even be older than the CMSIS standard (which, when I remmber correctly was established when Arm bought Keil)
So it may very well be that you are now suffering from living in two worlds....
I started abstracting those differences in mbf-freertos as they are a pain when trying to develop with one sourcecode for several processors, check here how I have done it in MBF-Freertos:
https://github.com/michael-ring/mbf-freertos/blob/master/source/MBF.STM32F4.UART.pasMiR