[fpc-devel] Cross-compiling and warnings from linker

Tomas Hajny XHajT03 at hajny.biz
Tue Nov 23 14:15:16 CET 2021

On 2021-11-23 13:17, Sergey Organov via fpc-devel wrote:
> Tomas Hajny via fpc-devel
> <fpc-devel-PD4FTy7X32k2wBtHl531yWD2FQJk+8+b at public.gmane.org> writes:
>> On 2021-11-22 16:46, Sergey Organov via fpc-devel wrote:
>>> Jonas Maebe via fpc-devel
>>> <fpc-devel-PD4FTy7X32k2wBtHl531yWD2FQJk+8+b at public.gmane.org> writes:
> The compiler will still read only 2 configuration files at most, the
> default for given instance of the compiler, and user's one.

The user would still need to remember that the first one depends on the 
installation path (which may not be even known to the compiler on some 
platforms as far as I remember!). The user may not even care/remember 
where the compiler is installed under normal conditions.

> I.e., compiler installed in /usr should *not* read
> /usr/local/etc/fpc.cfg, only /etc/fpc.cfg. Compiler installed 
> elsewhere,
> say, in /abc/def/custom, should read /abc/def/custom/etc/fpc.cfg.
> The idea of backing to read /etc/fpc.cfg if /abc/def/custom/etc/fpc.cfg
> is not found for backward compatibility that I've suggested above now
> doesn't look useful to me, as I can't figure a use-case where it would
> help.
> What is indeed confusing is sharing "system" configuration file between
> native and cross- compiler.

Why confusing? There is no "system" configuration file which would 
differ between native compilers and cross-compilers (note that 
cross-compilers may be installed at system-wide level, e.g. to 
/usr/bin/, equally to the native compiler!). There may indeed be a 
system-wide configuration file. Then there may be a user specific 
configuration file (~/.fpc.cfg on *nix machines) and a project specific 
configuration file (./fpc.cfg). Plus there may be a special 
configuration file for specific purpose which may be passed to the 
compiler using the '@' parameter. All of them allow specifying options 
valid for all cases / all compilations, as well as options used only 
under particular conditions (e.g. when compiling for a particular 
target, or a particular CPU). In addition, there are helpers which allow 
specifying certain configuration only once, but with certain parts 
changing value depending on the compilation target ($FPCTARGET). You can 
easily specify -XR valid for a particular target in your system-wide 
configuration file.

> I'd suggest that at least -XR (if not the
> installation directory itself) change the search path for configuration
> file.

You should better read how the FPC option -XR is specified. What is the 
relation between 'Prepend <x> to all linker search paths' (see FPC help) 
and location of the configuration file?


More information about the fpc-devel mailing list