Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / fpc-pascal / 2013-01

FPC's broken cross-compiler directory structure?

4 messages · 2 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Bruce Tulloch

I build FPC cross-compilers for Windows, Macintosh and (32 bit) Linux on a Debian Wheezy 64 bit host.

There appears to be a bug in the build process that produces dodgy *crosszipinstall
tarballs* for Windows.

This applies to FPC 2.6.0, 2.6.2 RC1 and 2.7.1 (today's SVN head). It's completely broken in 2.7.1 so I'll ignore that.

Below is the *build script* and the (filtered) *directory layout* of each tarball produced when building 2.6.2 RC 1.

*fpc-2.6.2rc1.x86_64-linux.tar.gz* is the native compiler. All the others are all cross-compilers.

Both windows compilers have directory structures that are different and seem to be wrong.

They do not appear to map where *fpc* expects to find *ppcross386* and * ppcrossx64* compilers (i.e. *lib/fpc/2.6.2*) and instead they are located in *bin/<arch>/*. Further, the tarball cannot simply be unpacked at the installation root (e.g. /usr/local) to have everything put in the correct place.

I can manually work around this problem but am I missing something?

Is this installation difference intentional?

Is there some additional option required when building cross compilers for Windows?

Many thanks, Cheers, Bruce.**

*Build Script...*

# Build Mac OSX 10.6 64 Bit...make distclean >/dev/nulltime make crossall crosszipinstall \CPU_TARGET=x86_64 OS_TARGET=darwin \CROSSBINDIR=/usr/local/opt/cctools/bin \BINUTILSPREFIX=i686-darwin- \OPT="-gl -gw -godwarfsets -XX -CX -Xd -Fl${OSX_SDK_LIB}" # Build Mac OSX 10.6 32 Bit...make distclean >/dev/nulltime make crossall crosszipinstall \CPU_TARGET=i386 OS_TARGET=darwin \CROSSBINDIR=/usr/local/opt/cctools/bin \BINUTILSPREFIX=i686-darwin- \OPT="-gl -gw -godwarfsets -XX -CX -Xd -Fl${OSX_SDK_LIB}" # Build Windows 8 64 Bit...make distclean >/dev/nulltime make crossall crosszipinstall \CPU_TARGET=x86_64 OS_TARGET=win64 \CROSSBINDIR=/usr/local/opt/binutils/bin \BINUTILSPREFIX=i386-mingw- \OPT="-XX -CX"
# Build Windows 8 32 Bit...make distclean >/dev/nulltime make crossall crosszipinstall \CPU_TARGET=i386 OS_TARGET=win32
\CROSSBINDIR=/usr/local/opt/binutils/bin \BINUTILSPREFIX=i386-mingw- \OPT="-XX -CX"
# Build Linux 32 Bit...make distclean >/dev/nulltime make crossall crosszipinstall \CPU_TARGET=i386 OS_TARGET=linux
\CROSSBINDIR=/usr/local/opt/binutils/bin \BINUTILSPREFIX=i386-linux- \OPT="-XX -CX"
# Build (native) Linux 64 Bit...make distclean >/dev/nulltime make all zipinstall

*Directory Layout...*

tar tvfz fpc-2.6.2rc1.i386-win32.tar.gz #
cross compiler (wrong layout?)
drwxr-xr-x bruce/bruce 0 2013-01-07 16:03 bin/ drwxr-xr-x bruce/bruce 0 2013-01-07 16:03 bin/x86_64-linux/ -rwxr-xr-x bruce/bruce 2760664 2013-01-07 16:03 bin/x86_64-linux/ppcross386 drwxr-xr-x bruce/bruce 0 2013-01-07 16:03 units/ drwxr-xr-x bruce/bruce 0 2013-01-07 16:03
tar tvfz
fpc-2.6.2rc1.i386-darwin.tar.gz # cross compiler (correct layout) drwxr-xr-x bruce/bruce 0 2013-01-07 16:00 bin/ drwxr-xr-x bruce/bruce 0 2013-01-07 16:00 lib/ drwxr-xr-x bruce/bruce 0 2013-01-07 16:00 lib/fpc/ drwxr-xr-x bruce/bruce 0 2013-01-07 16:00 lib/fpc/2.6.2/ -rwxr-xr-x bruce/bruce 8376619 2013-01-07 16:00 lib/fpc/2.6.2/ppcross386 drwxr-xr-x bruce/bruce 0 2013-01-07 16:00 lib/fpc/2.6.2/units/ drwxr-xr-x bruce/bruce 0 2013-01-07 16:00
tar tvfz
fpc-2.6.2rc1.i386-linux.tar.gz # cross compiler (correct layout) drwxr-xr-x bruce/bruce 0 2013-01-07 16:04 bin/ drwxr-xr-x bruce/bruce 0 2013-01-07 16:04 lib/ drwxr-xr-x bruce/bruce 0 2013-01-07 16:04 lib/fpc/ drwxr-xr-x bruce/bruce 0 2013-01-07 16:04 lib/fpc/2.6.2/ -rwxr-xr-x bruce/bruce 2760664 2013-01-07 16:04 lib/fpc/2.6.2/ppcross386 drwxr-xr-x bruce/bruce 0 2013-01-07 16:04 lib/fpc/2.6.2/units/ drwxr-xr-x bruce/bruce 0 2013-01-07 16:04
tar tvfz
fpc-2.6.2rc1.x86_64-win64.tar.gz # cross compiler (wrong layout?) drwxr-xr-x bruce/bruce 0 2013-01-07 16:01 bin/ drwxr-xr-x bruce/bruce 0 2013-01-07 16:01 bin/x86_64-linux/ -rwxr-xr-x bruce/bruce 2471768 2013-01-07 16:01 bin/x86_64-linux/ppcrossx64 drwxr-xr-x bruce/bruce 0 2013-01-07 16:01 units/ drwxr-xr-x bruce/bruce 0 2013-01-07 16:01
tar tvfz
fpc-2.6.2rc1.x86_64-darwin.tar.gz # cross compiler (correct layout) drwxr-xr-x bruce/bruce 0 2013-01-07 15:58 bin/ drwxr-xr-x bruce/bruce 0 2013-01-07 15:58 lib/ drwxr-xr-x bruce/bruce 0 2013-01-07 15:58 lib/fpc/ drwxr-xr-x bruce/bruce 0 2013-01-07 15:58 lib/fpc/2.6.2/ drwxr-xr-x bruce/bruce 0 2013-01-07 15:58 lib/fpc/2.6.2/units/ drwxr-xr-x bruce/bruce 0 2013-01-07 15:58
lib/fpc/2.6.2/units/x86_64-darwin/
-rwxr-xr-x bruce/bruce 7773587 2013-01-07 15:58
tar tvfz
fpc-2.6.2rc1.x86_64-linux.tar.gz # native installation (correct layout)
drwxr-xr-x bruce/bruce 0 2013-01-07 16:06 bin/ -rwxr-xr-x bruce/bruce 371304 2013-01-07 16:06 bin/fpc drwxr-xr-x bruce/bruce 0 2013-01-07 16:06 lib/ drwxr-xr-x bruce/bruce 0 2013-01-07 16:06 lib/fpc/ drwxr-xr-x bruce/bruce 0 2013-01-07 16:06 lib/fpc/2.6.2/ drwxr-xr-x bruce/bruce 0 2013-01-07 16:06 lib/fpc/2.6.2/units/ drwxr-xr-x bruce/bruce 0 2013-01-07 16:06
lib/fpc/2.6.2/units/x86_64-linux/
drwxr-xr-x bruce/bruce 0 2013-01-07 16:06 lib/fpc/2.6.2/ide/ -rwxr-xr-x bruce/bruce 2868120 2013-01-07 16:06 lib/fpc/2.6.2/ppcx64 drwxr-xr-x bruce/bruce 0 2013-01-07 16:06 lib/fpc/2.6.2/msg/ drwxr-xr-x bruce/bruce 0 2013-01-07 16:06 lib/fpc/lexyacc/ drwxr-xr-x bruce/bruce 0 2013-01-07 16:06 share/ drwxr-xr-x bruce/bruce 0 2013-01-07 16:06 share/doc/ drwxr-xr-x bruce/bruce 0 2013-01-07 16:06

Reply by email

Bruce Tulloch
to leledumbo

Thanks, but that's what the make file appears to do already (crossinstall into a local target which is then zipped).

If this problem is not affecting anyone else I'll not worry about it it as I've coded a simple script to work around the problem when installing on my system here.

Bruce.

leledumbo wrote 12 lines
I never use [cross]zipinstall so I have no idea about it, make [cross]install produce the correct directory structure. Perhaps you can [cross]install first then manually zip the result. -- View this message in context: http://free-pascal-general.1045716.n5.nabble.com/FPC-s-broken-cross-compiler-directory-structure-tp5712491p5712504.html Sent from the Free Pascal - General mailing list . _______________________________________________ fpc-pascal maillist - http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply by email

leledumbo
to Bruce Tulloch
Thanks, but that's what the make file appears to do already (crossinstall

into a local target which is then zipped).

Owh, then it should be correct. My automatic build script installs to correct directory structure for winXX targets... something must be wrong there...

View this message in context: http://free-pascal-general.1045716.n5.nabble.com/FPC-s-broken-cross-compiler-directory-structure-tp5712491p5712527.html Sent from the Free Pascal - General mailing list .

Reply by email