Here is the info needed to remove restrictions on the GPL licensed XC8-AVR compiler This is done on a Linux pc, so only refers to the Linux version. change data at file offset specified for the 3 files cc1,cc1plus,lto1 objdump will show the global var virtual addresses, and the .data section virtual address is used to figure out where the vars are located in the file- virtual var address - virtual section base address + section file offset = var file offset The vars and what they do can be found in the gpl source code available from microchip. This example is for version 2.20 and and the same method will work for later versions also (until they change their methods). Earlier versions did not use global variables so another method was used which was a little more difficult as you needed to modify the code instead. ==cc1== objdump -T cc1 | grep license_valid 00000000017fe880 g DO .data 0000000000000008 Base mchp_xccov_license_valid 00000000017fe878 g DO .data 0000000000000008 Base mchp_avr_license_valid objdump -h cc1 | grep " .data " 25 .data 000086f0 00000000017f6860 00000000017f6860 011f6860 2**5 cc1- 0x17fe878 - 0x17f6860 = 0x8018 +011f6860 = file offset 0x11fe878 - change FFFFFFFFFFFFFFFF to 0200000000000000 0x17fe880 - 0x17f6860 = 0x8020 +011f6860 = file offset 0x11fe880 - change FFFFFFFFFFFFFFFF to 0900000000000000 ==cc1plus== objdump -T cc1plus | grep license_valid 0000000001985980 g DO .data 0000000000000008 Base mchp_xccov_license_valid 0000000001985978 g DO .data 0000000000000008 Base mchp_avr_license_valid objdump -h cc1plus | grep " .data " 25 .data 000087d0 000000000197d880 000000000197d880 0137d880 2**5 cc1plus- 0x1985978 - 0x197d880 = 80F8 +0x137d880 = file offset 0x1385978 - change FFFFFFFFFFFFFFFF to 0200000000000000 0x1985980 - 0x197d880 = 8100 +0x137d880 = file offset 0x1385980 - change FFFFFFFFFFFFFFFF to 0900000000000000 ==lto1== objdump -T lto1 | grep license_valid 0000000001713660 g DO .data 0000000000000008 Base mchp_xccov_license_valid 0000000001713658 g DO .data 0000000000000008 Base mchp_avr_license_valid objdump -h lto1 | grep " .data " 25 .data 000083d0 000000000170b960 000000000170b960 0110b960 2**5 lto1- 0x1713658 - 0x170b960 = 7CF8 +0x110b960 = file offset 0x1113658 - change FFFFFFFFFFFFFFFF to 0200000000000000 0x1713660 - 0x170b960 = 7D00 +0x110b960 = file offset 0x1113660 - change FFFFFFFFFFFFFFFF to 0900000000000000 Version 2.31 - Windows from FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF to 02 00 00 00 00 00 00 00 09 00 00 00 00 00 00 00 file offset cc1.exe 0xC98648 cc1plus.exe 0xDC03A8 lto1.exe 0xC10CA8