DOI-USGS / ISIS3

Integrated Software for Imagers and Spectrometers v3. ISIS3 is a digital image processing software package to manipulate imagery collected by current and past NASA and International planetary missions.
https://isis.astrogeology.usgs.gov
Other
197 stars 167 forks source link

Mac OS Monterey Multiple Issues with C++14 #5074

Closed amystamile-usgs closed 1 year ago

amystamile-usgs commented 1 year ago

Description

The new C++14 compiler with Monterey is now incompatible with older versions of gtest. ~There is a new version update with gtest but requires that everyone switch to the new C++ compiler/update OS version (incompatible with C++11 or older).~ Version 1.12.1 is the last version that is compatible with C++11. This version also seems to be working with C++14 compiling wise. We are still seeing segafults with our runISISTests.

See google test release information here.

When updating to the newest version of gtest, the runISISTests executable now segfaults with no clear understanding as to why.

How to reproduce
Running cmake on Monterey

Possible Solution
It may be possible to downgrade the compiler version for now since this seems like a larger issue with multiple code breaks.

Additional context

KrisBecker commented 1 year ago

I have a post in #5029 that contains more detail on this issue.

I have tried both 14.0 and 13.4.1 on Monterey and both fail. Xcode 12 and lower is not supported on Monterey so downgrading is not an option for the Mac. (I see a work around, but I do not recommend that - Apple requires Xcode 13+ in order to submit apps to the Apple Store).

amystamile-usgs commented 1 year ago

Based on Jesse's previous comments, it sounds like we may need to move gtest from a static included dependency to a separate dependency per OS. Reading through the google test release notes, version v1.12.1 should still work for C++11. So we may be okay updating to this version for now and then have to do separate dependencies per OS on the next gtest update.

@KrisBecker I was able to the update gtest version locally by running git submodule update --remote --merge. This allowed me to build without errors but the RunISISTests executable now segfaults. I wonder if this is the case for you as well. This may have to do with other changes made in the gtest 1.12.1 update.

KrisBecker commented 1 year ago

@amystamile-usgs I will give it a try and let you know what I find.

Thanks...

KrisBecker commented 1 year ago

@amystamile-usgs I pulled your branch and it built fine on my Monterey system. This was tested with Xcode 14.0.

For what its worth, here is the result of running the tests. Note, I updated ISISTESTDATA but it did not have any additional changes. I am pretty sure the ISISDATA area is out-of-date so these results may not be of much value.


98% tests passed, 45 tests failed out of 2370

Label Time Summary:
apollo          =   5.76 sec*proc (4 tests)
app             = 5059.90 sec*proc (768 tests)
cassini         =   5.86 sec*proc (5 tests)
chandrayaan1    =   1.01 sec*proc (1 test)
clementine      =   3.10 sec*proc (4 tests)
dawn            =   1.65 sec*proc (2 tests)
galileo         =   0.78 sec*proc (1 test)
hayabusa        =   1.95 sec*proc (2 tests)
hayabusa2       =   0.97 sec*proc (1 test)
isis            = 311.13 sec*proc (319 tests)
juno            =   1.03 sec*proc (1 test)
kaguya          =   2.17 sec*proc (2 tests)
lo              =   2.75 sec*proc (3 tests)
lro             =   2.86 sec*proc (3 tests)
mariner         =   1.70 sec*proc (1 test)
messenger       =   0.95 sec*proc (1 test)
mex             =   2.04 sec*proc (2 tests)
mgs             =   3.99 sec*proc (4 tests)
mro             =   6.78 sec*proc (6 tests)
newhorizons     =   3.37 sec*proc (4 tests)
odyssey         =   1.72 sec*proc (2 tests)
rosetta         =   2.64 sec*proc (2 tests)
tgo             =   0.95 sec*proc (1 test)
unit            = 367.38 sec*proc (373 tests)
viking          =   1.16 sec*proc (1 test)
voyager         =   1.08 sec*proc (1 test)

Total Test time (real) = 9264.46 sec

The following tests did not run:
    1765 - TempTestingFiles.FunctionalTestJitterfitDefault (Disabled)
    1796 - TempTestingFiles.UnitTestImageImporterTestJpeg (Disabled)

The following tests FAILED:
     63 - isis_unit_test_Cube (Failed)
    127 - isis_unit_test_JP2Importer (Failed)
    163 - isis_unit_test_NaifDskShape (Failed)
    350 - ascii2isis_app_test_errors (Failed)
    643 - phoemplocal_app_test_case01 (Failed)
    690 - ringscam2map_app_test_combination4 (Failed)
    693 - ringscam2map_app_test_matchmap (Failed)
    732 - spicefit_app_test_default (Failed)
    808 - deltack_app_test_directOffTarget (Failed)
    809 - deltack_app_test_directVIMS (Failed)
    839 - isiscomplete_app_test_default (Failed)
    902 - cassini_module_test_vims (Failed)
    908 - clem2isis_app_test_default (Failed)
    917 - clementine_module_test_clementine (Failed)
    944 - hyb1pds4gen_app_test_amicaitokawa2diof (Failed)
    945 - hyb1pds4gen_app_test_mars (Failed)
    946 - hyb1pds4gen_app_test_nirsitokawa3drefl (Failed)
    948 - hayabusa_module_test_fullframe (Failed)
    949 - hayabusa_module_test_subframe (Failed)
    981 - lronaccal_app_test_nacl-full (Failed)
    982 - lronaccal_app_test_nacl-summed (Failed)
    983 - lronaccal_app_test_nacr-full (Failed)
    984 - lronaccal_app_test_nacr-summed (Failed)
    1033 - mdisedrinfo_app_test_kernelchk (Failed)
    1040 - mex_module_test_hrsc (Failed)
    1055 - mgs_module_test_moc (Failed)
    1084 - hijitter_app_test_default (Failed)
    1085 - hijitter_app_test_withCrop (Failed)
    1106 - mro_module_test_hirise (Failed)
    1107 - near_module_test_msi (Failed)
    1126 - odyssey_module_test_themis (Failed)
    1130 - osirisrex_module_test_mapcam (Failed)
    1252 - ThreeImageNetwork.FunctionalTestFindfeaturesGeomMatch (Failed)
    1769 - TempTestingFiles.Msi2isisTestNearestNeighbor (Failed)
    1792 - TempTestingFiles.FunctionalTestStd2isisJp2 (Failed)
    1798 - TempTestingFiles.UnitTestImageImporterStd2IsisJp2 (Failed)
    1912 - MroHiriseCube.FunctionalTestHimosDefault (SEGFAULT)
    1945 - IsisTruthCube.FunctionalTestsIsis2StdJpeg2KGray (Failed)
    1946 - IsisTruthCube.FunctionalTestsIsis2StdJpeg2KU16 (Failed)
    1947 - IsisTruthCube.FunctionalTestsIsis2StdJpeg2KS16 (Failed)
    1957 - SmallARGBCube.FunctionalTestsIsis2StdJpeg2KRGB (Failed)
    1958 - SmallARGBCube.FunctionalTestsIsis2StdJpeg2KARGB (Failed)
    2028 - LidarObservationPair.FunctionalTestLrolola2isisTwoImage (Failed)
    2029 - LidarObservationPair.FunctionalTestLrolola2isisMultipleCsv (Failed)
    2350 - TgoCassisModuleKernels.TgoCassisTestProjSingleStitchedFrame (Failed)
Errors while running CTest

Thank you for getting this done.