Hi, On Sat, 12 Feb 2022, Thorsten Otto via fpc-devel wrote:
> I'm currently trying to set this up and have a problem with the > cross-compiler. Although that was configured for atari and 68000, it > still has LINUX and CPU68020 defined while processing the config file. That probably can't be helped, because LINUX and 68020 is always the default for the m68k crosscompiler. The crosscompiler for the given CPU target will be the same, regardless of the OS target. So technically it is possible to release a 68k crosscompiler package that could target both Atari and Amiga (sic!), because the only difference is the units. :) > My config file has -Tatari set, so the LINUX define is no issue. But if > i invoke the compiler without excplicit -Cp<x>, it will generate code > for 68000, but take the libraries from the 68020 directory. It works as > intended if i explictly specify -Cp68000. Yes, and I agree this is a valid issue, because apparently it only sets the target CPU subarch and target FPU settings after the entire config file was processed. We probably have to set these when the -T argument is first encountered. > Why are those macros still defined? See above. > I also noticed that the cross-compiler still tries to locate units in > /usr/lib/fpc/3.3.1/units/atari/rtl That does not cause problems (because > the directory does not exists), but doesn't look quite right. It seems this global path is hardwired on Unix systems, as the default unit path. You can overwrite this with the FPCDIR environment variable. See the relevant code here: https://gitlab.com/freepascal.org/fpc/source/-/blob/main/compiler/options.pas#L4643 I'm not claiming I like this solution, but I guess the issue is mostly harmless. Charlie _______________________________________________ fpc-devel maillist - fpc-devel@lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel