Subject: | Remove the .la files in strawberry\c\lib\gcc\x86_64-w64-mingw32\7.1.0? |
The .la files in strawberry\c\lib\gcc\x86_64-w64-mingw32\7.1.0 refer to locations on the build system.
For example, libstdc++.la has an entry:
libdir='/mingw64/lib/gcc/x86_64-w64-mingw32/7.1.0'
For the most part these file are harmless. Compilation of alien modules can often throw the warning "libtool: warning: library 'c:/strawberry/c/bin/../lib/gcc/x86_64-w64-mingw32/7.1.0/libstdc++.la' was moved", but this does not affect the compilation itself.
However, but I recently hit an issue with a libtool based alien distribution that had a build failure because it was using the paths derived from the libstdc++.la file. Details of that below.
The build failure is moderately complex and takes over an hour to get to the fail point, but an appveyor build log link is below to save others having to build it.
Alien::geos (not yet on cpan, but on github at https://github.com/shawnlaffan/perl-alien-geos) hard codes the lib paths from some of the .la files from Strawberry Perl in one of its own .la files. If I then build Alien::gdal with GEOS support then the build fails at the linker stage, reporting that it cannot find a /mingw64 sub-directory.
Full gdal build log is at https://ci.appveyor.com/project/shawnlaffan/perl-alien-gdal/build/1.0.194
The specific error text is:
/usr/bin/grep: /mingw64/lib/gcc/x86_64-w64-mingw32/7.1.0/libstdc++.la: No such file or directory
/usr/bin/sed: can't read /mingw64/lib/gcc/x86_64-w64-mingw32/7.1.0/libstdc++.la: No such file or directory
libtool: error: '/mingw64/lib/gcc/x86_64-w64-mingw32/7.1.0/libstdc++.la' is not a valid libtool archive
I have a workaround where I remove the Alien::geos .la files as part of its build process, but I'm reporting this issue as it might have impacts on other builds.
Thanks,
Shawn.