[Bioc-devel] Troubles with Windows build

Ulrich Bodenhofer bodenho|er @end|ng |rom b|o|n|@jku@@t
Thu Sep 12 09:28:15 CEST 2019

Hi Hervé,

Thanks a lot for your very helpful and insightful reply!
> [...]
> I think this looks indeed like a leftover/stale .o file but I think the
> file is in the source tarball produced by the BUILD stage
> (msa_1.17.0.tar.gz). If you look at your cleanup.win script, it doesn't
> remove the stuff in src/ClustalOmega/src/exceptions4c/ so I think what
> happens is that at the end of compilation the folder contains all the
> *.o files for the 64-bit arch and these files get included in the source
> tarball. Then the BUILD BIN stage choke on these files during the
> 'install for i386' step.
> 'diff cleanup cleanup.win' actually shows many differences between the 2
> scripts. You might want to review them closely as it looks like some of
> them are not intended.
The hint to cleanup.win was great! I have no idea why the exceptions4c/ 
directory was missing in cleanup.win, but it seems that, according to my 
tests, that was actually the source of the problem. The other 
differences between cleanup and cleanup.win are either intended or 
benign (to be frank, I'd rather not touch this sensitive area as long as 
everything seems to work fine).
> AFAIK, 'ar' stands for "archive". It doesn't compile anything, it only
> bundles things in one single *static* (not shared) library (.a file).
Sure! I meant 'compile' in the sense of 'putting together', not in the 
sense of 'translating source code into machine code'.
>> This has always worked fine, and
>> on the Bioconductor build servers, too. Now it seems I can no longer run
>> the binary build on my Windows system. My Windows makefiles refer to the
>> '$(AR)' variable, but it seems this variable is not correctly expanded
>> to the actual location of the 'ar' tool (in Rtools 35, it is not in
>> Rtools\bin, but in Rtools\mingw_(32|64)\bin) . Any thoughts on this?
> Don't know. You might want to try SO or R-devel for this one.

In the meantime, I have found a very slight and implicit hint to this in 
Section " Compiling in sub-directories" of "Writing R 
Extensions". The example at the bottom of this section explicitly 
forwards the 'AR' environment variable when running 'make' in a 
sub-directory. I have now included this in my Makevars.win and it seems 
that the second issue is now solved, too. However, I still have no idea 
why this has worked for so long and it still worked without this on the 
BioC build server. My only explanation is that the way 'R CMD SHLIB' 
handles environment variables has changed with a recent R version. I 
have not heard of this, but, to be frank, I do not have the time to 
follow all changes in detail.

Anyway, it seems everything is fine now. Thanks again!

Best regards,

More information about the Bioc-devel mailing list