Jonas Maebe wrote: > Internally, the compiler uses a shortstring (max 255) characters to > build the "ar" command line. It currently passes three file names at > a time to "ar", so the currently max is about 80 characters per dir > +filename.
Executive summary: This fails when the longest filename is around 119 characters, but is OK when it is a couple of characters shorter. Detail follows. Working from a starting position of the source directory being /fpcsrc (i.e. 7 chars), I can confirm that this can be "stretched" to 51 chars but not to 53 which is the same length as the original path I was using. Once it gets to 53 chars it fails in the same place as before. The shell running the make command displays: /usr/bin/ar: creating units/sparc-linux/libpgdkpixbuf.a make -C gtkgl all make[6]: Entering directory `/fpcsrcABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890123456789/packages/extra/gtk/gtkgl' /fpcsrcABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890123456789/compiler/ppcsparc -XX -CX -Ur -Xs -n -Fu/fpcsrcABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890123456789/rtl/units/sparc-linux -Fu/fpcsrcABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890123456789/packages/extra/x11/units/sparc-linux -Fu/fpcsrcABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890123456789/packages/extra/opengl/units/sparc-linux -FE. -FU/fpcsrcABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890123456789/packages/extra/gtk/units/sparc-linux -Fl/usr/lib/gcc-lib/sparc-linux/3.3.5 -Fl/usr/X11R6/lib -dsparc -dRELEASE gtkglarea.pp /usr/bin/ar: creating /fpcsrcABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890123456789/packages/extra/gtk/units/sparc-linux/libpgtkglarea.a ps faux displays: \_ make -C gtkgl all \_ /fpcsrcABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890123456789/compiler/ppcsparc -XX -CX -Ur -Xs -n -Fu/fpcsrcABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890123456789/rtl/units/sparc-linux -Fu/fpcsrcABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890123456789/packages/extra/x11/units/sparc-linux -Fu/fpcsrcABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890123456789/packages/extra/opengl/units/sparc-linux -FE. -FU/fpcsrcABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890123456789/packages/extra/gtk/units/sparc-linux -Fl/usr/lib/gcc-lib/sparc-linux/3.3.5 -Fl/usr/X11R6/lib -dsparc -dRELEASE gtkglarea.pp \_ /bin/sh -c /usr/bin/ar qS /fpcsrcABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890123456789/packages/extra/gtk/units/sparc-linux/libpgtkglarea.a and then: \_ make -C gtkgl all \_ /fpcsrcABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890123456789/compiler/ppcsparc -XX -CX -Ur -Xs -n -Fu/fpcsrcABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890123456789/rtl/units/sparc-linux -Fu/fpcsrcABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890123456789/packages/extra/x11/units/sparc-linux -Fu/fpcsrcABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890123456789/packages/extra/opengl/units/sparc-linux -FE. -FU/fpcsrcABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890123456789/packages/extra/gtk/units/sparc-linux -Fl/usr/lib/gcc-lib/sparc-linux/3.3.5 -Fl/usr/X11R6/lib -dsparc -dRELEASE gtkglarea.pp \_ /usr/bin/ar qS /fpcsrcABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890123456789/packages/extra/gtk/units/sparc-linux/libpgtkglarea.a Sorry about the wrap on that. Looking in ....gtkglarea.sl: -rw-r--r-- 1 markMLl markMLl 441 2006-08-11 13:06 gtkglarea0s17.o -rw-r--r-- 1 markMLl markMLl 441 2006-08-11 13:06 gtkglarea0s18.o -rw-r--r-- 1 markMLl markMLl 510 2006-08-11 13:06 gtkglarea0s10.o -rw-r--r-- 1 markMLl markMLl 502 2006-08-11 13:06 gtkglarea0s11.o -rw-r--r-- 1 markMLl markMLl 496 2006-08-11 13:06 gtkglarea0s12.o -rw-r--r-- 1 markMLl markMLl 680 2006-08-11 13:06 gtkglarea0s13.o -rw-r--r-- 1 markMLl markMLl 509 2006-08-11 13:06 gtkglarea0s14.o -rw-r--r-- 1 markMLl markMLl 632 2006-08-11 13:06 gtkglarea0s15.o -rw-r--r-- 1 markMLl markMLl 441 2006-08-11 13:06 gtkglarea0s16.o -rw-r--r-- 1 markMLl markMLl 493 2006-08-11 13:06 gtkglarea0s5.o -rw-r--r-- 1 markMLl markMLl 441 2006-08-11 13:06 gtkglarea0s6.o -rw-r--r-- 1 markMLl markMLl 441 2006-08-11 13:06 gtkglarea0s7.o -rw-r--r-- 1 markMLl markMLl 511 2006-08-11 13:06 gtkglarea0s8.o -rw-r--r-- 1 markMLl markMLl 503 2006-08-11 13:06 gtkglarea0s9.o -rw-r--r-- 1 markMLl markMLl 470 2006-08-11 13:06 gtkglarea0s1.o -rw-r--r-- 1 markMLl markMLl 724 2006-08-11 13:06 gtkglarea0s2.o -rw-r--r-- 1 markMLl markMLl 704 2006-08-11 13:06 gtkglarea0s3.o -rw-r--r-- 1 markMLl markMLl 441 2006-08-11 13:06 gtkglarea0s4.o Current time is now 14:43 so these haven't been touched for some hours despite the fact that the make is still trying to run. Slecting the file here with the longest name, the entire path would be something like /fpcsrcABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890123456789/packages/extra/gtk/units/sparc-linux/gtkglarea.sl/gtkglarea0s18.o which is 119 characters. Going by your earlier comment 3 x 119 is 357 which is obviously longer than 255. What I don't see is how this worked when the path was only a couple of characters shorter. As an experiment, I'm going to leave the actual directory the same length but see if setting up a short symlink to it works. -- Mark Morgan Lloyd markMLl .AT. telemetry.co .DOT. uk [Opinions above are the author's, not those of his employers or colleagues] _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal