[Lazarus] Codetools and casing of unit files on Darwin

Michael Ring mail at michael-ring.org
Wed Mar 10 14:17:28 CET 2021

I am having an issue with casing of included units and codetools, I 
searched through Mantis but did not find anything matching although I 
think this issue is too obvious for nobody besides me seeing it:

I am on Lazarus Trunk (from yesterday or the day before), on a x86_64 
Mac with Big Sur installed.

I have a unit in uses:



and the unit filename matches the written unit name.

Codetools works fine...

Then I change to:



now codetools complains that unit cannot be found when I try to get 
context help via ctrl-Space.

However, the code still compiles fine because default Darwin Filesystem 
(and/or) fpc does not care for upper/lower case in filenames on Darwin....

The main reason why this behaviour is quite annoying is that 
traditionally(??) filenames for embedded Units are lowercase and their 
definition in cpuinfo.pas is uppercase:

from cpuinfo.pas:

(controllertypestr:'STM32F100X4'; controllerunitstr:'STM32F10X_LD';

ls ~/devel/fpc/rtl/embedded/arm
allwinner_a20.pp    cortexm3.pp        cortexm7.pp lpc11xx.pp        
lpc21x4.pp        mk22f51212.pp raspi2.pp        stm32f10x_cl.pp        
stm32f10x_md.pp stm32f411xe.pp        stm32f745.pp
at91sam7x256.pp        cortexm3_start.inc    lm3fury.pp lpc122x.pp    
     lpc8xx.pp        mk64f12.pp        sam3x8e.pp     
stm32f10x_conn.pp    stm32f10x_xl.pp        stm32f429.pp     stm32f746.pp
cortexm0.pp        cortexm4.pp        lm3tempest.pp lpc13xx.pp        
mk20d5.pp        nrf51.pp        sc32442b.pp     stm32f10x_hd.pp        
stm32f401xx.pp        stm32f429xx.pp     stm32f756.pp
cortexm0_start.inc    cortexm4f_start.inc    lm4f120.pp lpc1768.pp    
     mk20d7.pp        nrf52.pp        stm32f0xx.pp     
stm32f10x_ld.pp        stm32f407xx.pp        stm32f446xx.pp     xmc4500.pp

Did I overlook some FAQ or should I open an issue on Mantis?


More information about the lazarus mailing list