Skip to content

[R-pkg-devel] windows i386

4 messages · Florian Schwendinger, Simon Urbanek, Uwe Ligges

#
Dear R-package-developers,

On 'r-oldrel-windows-ix86_x86_64' I get in 'check.log' the error message
"Error: package 'highs' is not installed for 'arch = i386'"
the statement that for arch = i386 the package is not installed is correct and expected,
since in 'install.out' I see the warning
"Warning: this package has a non-empty 'configure.win' file, so building only the main architecture"

Looking at r-package-devel archive, I found the suggestion to set Biarch TRUE in the DESCRIPTION file.
I don't want to force the build of "i386" by setting Biarch: TRUE,
since as far as I see from the source I link to this should not work and I don't want
to alter the library I link to as little as possible.
Therefore, I want skip the step "loading checks for arch 'i386'". Is this possible?

I know locally this can be resolved by adding the option '--no-multiarch',
but can a similar effect be accomplished at the CRAN checks?
Furthermore, I know I can could this issue by adding R >= 4.2 to the depends since Rtools 4.2
does not build for i386. But this does not seem like a nice fix.

Is there a better option and how would it work?

Best regards,
Florian
1 day later
#
Florian,

since there was no direct response and given the earlier discussion I figured I chime. The main problem seems to be your build system that doesn't work. Since you didn't post the actual version of the package, I can only see the CRAN version which still don't set any of the necessary flags from R so it won't work (the error is that it can't even use the C compiler). Your package has to work both in 32-bit and 64-bit, so you need to make sure you pass the correct flags for cmake for each architecture - it's really the same concept as discussed earlier. As for multi-arch, if you have configure.win then you may need to use --merge-multiarch such that each architecture is built separately and the merged into one binary.

I think an easier approach would be if you simply dropped configure* and just used Makevars to build the dependent library as part of the build process since you are building in a sub-directory, so you don't really need the configure and could build both archs in one R CMD INSTALL run.

Cheers,
Simon
#
On 13.09.2022 13:14, Florian Schwendinger wrote:
No, up to the R-4.1.x series we provide only bi-arch packages. Not 
packages for single architectures.
If it is not too important for you that CRAN provides Windows binaries 
for the R-4.1.x series, simply keep it as is.
Users can install for x64 from source or upgrade R.

Best,
Uwe
3 days later
#
Dear Simon,

The repo is at https://gitlab.com/roigrp/solver/highs .

Thank you. If I tried the Makevars approach but this leads to other issues
with the 32-bit version.
I resubmittet the the version with the configure file.

Cheers,
Florian
?

Gesendet:?Donnerstag, 15. September 2022 um 01:39 Uhr
Von:?"Simon Urbanek" <simon.urbanek at R-project.org>
An:?"Florian Schwendinger" <FlorianSchwendinger at gmx.at>
Cc:?r-package-devel at r-project.org
Betreff:?Re: [R-pkg-devel] windows i386
Florian,

since there was no direct response and given the earlier discussion I figured I chime. The main problem seems to be your build system that doesn't work. Since you didn't post the actual version of the package, I can only see the CRAN version which still don't set any of the necessary flags from R so it won't work (the error is that it can't even use the C compiler). Your package has to work both in 32-bit and 64-bit, so you need to make sure you pass the correct flags for cmake for each architecture - it's really the same concept as discussed earlier. As for multi-arch, if you have configure.win then you may need to use --merge-multiarch such that each architecture is built separately and the merged into one binary.

I think an easier approach would be if you simply dropped configure* and just used Makevars to build the dependent library as part of the build process since you are building in a sub-directory, so you don't really need the configure and could build both archs in one R CMD INSTALL run.

Cheers,
Simon
?