[fpc-pascal] fpc in symlinked directory

Mattias Gaertner nc-gaertnma at netcologne.de
Wed Mar 26 11:52:38 CET 2014


On Wed, 26 Mar 2014 11:25:19 +0100 (CET)
Michael Van Canneyt <michael at freepascal.org> wrote:

>[...]
> > AFAIK the PWD is the official thing and used by other console tools as
> > well. For example when I compile a file with gcc in a symlinked
> > directory it creates debugging info with the unresolved file name.
> 
> 
> This is not correct. 
> You seem to think bash-specific behaviour is the correct way to do things.
> It is not, it is specific to bash.
> 
> I use tcsh:
> 
> cadwal: >cd /tmp
> cadwal: >ls -ld src1 link
> lrwxrwxrwx 1 michael michael    4 Mar 26 11:09 link -> src1/
> drwxrwxr-x 2 michael michael 4096 Mar 26 11:12 src1/
> cadwal: >cd link
> cadwal: >pwd
> /tmp/src1
> 
> As you see, it has "resolved" the link.

You seem to think tcsh-specific behaviour is the correct way to do
things. ;)

tcsh uses -P as default, while bash uses -L as default:

pwd -L
/tmp/link

And using gcc in tcsh uses /tmp/link for debugging info as well.


>[...]
> >>> compiler uses its current directory.
> >>
> >> What does that mean ? Can you give a command-line example ?
> >
> > I used this one:
> > cd /tmp/link
> > /usr/bin/fpc -g -gl -vb -Fi/tmp/link -Fu/tmp/link/
> > -FU/tmp/link/ /tmp/link/project1.lpr
> 
> cadwal: >fpc -g -gl -vb -Fi/tmp/link -Fu/tmp/link -FU/tmp/link /tmp/link/p.pp
> /usr/bin/ld: warning: link.res contains output sections; did you forget -T?
> 
> So your example works fine here.

It compiles, but it creates wrong debugging info.
What shows "objdump -g unit1.o | grep tmp" for you?
/tmp/link/ or /tmp/orig/?

 
>[...]

Mattias



More information about the fpc-pascal mailing list