-
Notifications
You must be signed in to change notification settings - Fork 294
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix compilation error on gcc 14.2 #2421
base: main
Are you sure you want to change the base?
Conversation
R > devtools::install() Compilation error encountered with gcc 4.2: ``` In file included from gdal.cpp:1: ./gdal.h:3:1: error: ‘OGRSpatialReference’ does not name a type; did you mean ‘DEFINED_OGRSpatialReferenc eH’? 3 | OGRSpatialReference *handle_axis_order(OGRSpatialReference *sr); | ^~~~~~~~~~~~~~~~~~~ | DEFINED_OGRSpatialReferenceH ./gdal.h:4:1: error: ‘Rcpp’ does not name a type 4 | Rcpp::List create_crs(const OGRSpatialReference *ref, bool set_input); | ^~~~ ``` This commit forward declares `OGRSpatialReference` to fix the first error above, and it includes `Rcpp.h` explicitly to fix the second error. ``` $ R --version R version 4.4.1 (2024-06-14) -- "Race for Your Life" $ gcc --version gcc (GCC) 14.2.1 20240802 $ uname -a Linux durus 6.10.3-arch1-1 r-spatial#1 SMP PREEMPT_DYNAMIC Sun, 04 Aug 2024 05:11:32 +0000 x86_64 GNU/Linux ```
@djhshih Please indicate which version of GDAL you are using. I cannot replicate with GCC 14.2.1 (current Fedora 40) for:
GDAL 3.9.2 RC was made available yesterday with a further fix for GCC 14.2: https://github.com/OSGeo/gdal/blob/v3.9.2RC1/NEWS.md |
|
@djhshih How were R and GDAL installed? I always install from source, but if you use a package manager, it may arbitrarily impose CFLAGS that max out the package manager's choice of what is felt to be secure. My CFLAGS as shown in running R CMD INSTALL (please always avoid
Yours are? |
We're not yet testing with gcc 14 I believe, but these fixes seem odd and unnecessary to me. |
@edzer I did test, as F40 has 14.2.1. The problem is most likely that Arch Linux binary builds of R impose specific, possibly aggressive, C/CXXFLAGS (unknown, @djhshih did not reply) that change the behaviour of the build train. I don't see any problems with default flags. This is up to the user, I think. @djhshih needs to document the flags used here, both for building GDAL etc., and R, and those that |
R
Compilation error encountered with gcc 14.2:
This commit forward declares
OGRSpatialReference
to fix the first error above, and it includesRcpp.h
explicitly to fix the second error.