id,summary,reporter,owner,description,type,status,priority,milestone,component,version,severity,resolution,keywords,cc 6350,Optimization versus broken versions of Intel compiler,werdna,warmerdam,"This is a follow up to a discussion in the email list last year, which started at http://lists.osgeo.org/pipermail/gdal-dev/2015-November/043025.html (some emails, including mine, in the discussion have not made it onto the list). I have access to a machine which has many versions and subversions of the intel compiler from v9 to v15. Compiler versions 9.1.043, 9.1.046, 10.0.017, 10.0.026 and 10.1.015 fail before attempting to compile thinplatespline.cpp (on gdalmediancut.cpp). Versions 10.1.022 and all the v11 and v13 versions I have (11.0.074, 11.0.081, 11.0.083, 1 1.1.046, 11.1.056, 11.1.059, 11.1.064, 11.1.069, 11.1.072 and 11.1.073 13.0.0.079, 13.0.1. 117, 13.1.0.146 and 13.1.2.183) fail to compile thinplatespline.cpp. Compilation succeeds with all version 12 and 15 versions I have (12.0.0.084, 12.0.1.107, 1 2.0.2.137, 12.0.4.191, 12.0.5.220, 12.0.7.256, 12.1.10.319, 12.1.11.339, 12.1.8.273, 12.1. 9.293 and 15.0.0.090, 15.0.1.133, 15.0.5.223). Version 14.0.3.174 succeeds, but all other v14 versions (all older 14.0.0.080, 14.0.1.106 and 14.0.2.144) I have access to fail. There are two compiler predefined macros related to the intel compiler version: __INTEL_CO MPILER and __INTEL_COMPILER_BUILD_DATE . The Intel compilers also also define __GNUC__ and __x86_64__ . ||=Version ||__INTEL_COMPILER ||__INTEL_COMPILER_BUILD_DATE||OK?=|| ||9.1.043 ||910 ||20060818 ||gdalmediancut.lo fails|| ||9.1.046 ||910 ||20070109 ||gdalmediancut.lo fails|| ||10.0.017 ||1000 ||20070307 ||gdalmediancut.lo fails|| ||10.0.026 ||1000 ||20070809 ||gdalmediancut.lo fails|| ||10.1.015 ||1010 ||20080312 ||gdalmediancut.lo fails|| ||10.1.022 ||1010 ||20090203 ||thinplatespline.lo fails|| ||11.0.074 ||1100 ||20081105 ||thinplatespline.lo fails|| ||11.0.081 ||1100 ||20090131 ||thinplatespline.lo fails|| ||11.0.083 ||1100 ||20090318 ||thinplatespline.lo fails|| ||11.1.046 ||1110 ||20090630 ||thinplatespline.lo fails|| ||11.1.056 ||1110 ||20090827 ||thinplatespline.lo fails|| ||11.1.059 ||1110 ||20091012 ||thinplatespline.lo fails|| ||11.1.064 ||1110 ||20091130 ||thinplatespline.lo fails|| ||11.1.069 ||1110 ||20100203 ||thinplatespline.lo fails|| ||11.1.072 ||1110 ||20100414 ||thinplatespline.lo fails|| ||11.1.073 ||1110 ||20100806 ||thinplatespline.lo fails|| || -- || -- || -- || -- || ||12.0.0.084 ||1200 ||20101006 ||compiles|| ||12.0.1.107 ||1200 ||20101116 ||compiles|| ||12.0.2.137 ||1200 ||20110112 ||compiles|| ||12.0.4.191 ||1200 ||20110427 ||compiles|| ||12.0.5.220 ||1200 ||20110719 ||compiles|| ||12.0.7.256 ||1210 ||20111011 ||compiles|| ||12.1.10.319 ||1210 ||20120410 ||compiles|| ||12.1.11.339 ||1210 ||20120612 ||compiles|| ||12.1.8.273 ||1210 ||20111128 ||compiles|| ||12.1.9.293 ||1210 ||20120212 ||compiles|| || -- || -- || -- || -- || ||13.0.0.079 ||1300 ||20120731 ||thinplatespline.lo fails|| ||13.0.1.117 ||1300 ||20121010 ||thinplatespline.lo fails|| ||13.1.0.146 ||1310 ||20130121 ||thinplatespline.lo fails|| ||13.1.2.183 ||1310 ||20130514 ||thinplatespline.lo fails|| ||14.0.0.080 ||1400 ||20130728 ||thinplatespline.lo fails|| ||14.0.1.106 ||1400 ||20131008 ||thinplatespline.lo fails|| ||14.0.2.144 ||1400 ||20140120 ||thinplatespline.lo fails|| || -- || -- || -- || -- || ||14.0.3.174 ||1400 ||20140422 ||compiles|| ||15.0.0.090 ||1500 ||20140723 ||compiles|| ||15.0.1.133 ||1500 ||20141023 ||compiles|| ||15.0.5.223 ||1500 ||20150805 ||compiles|| The attached patch enables all my versions of the compiler to compile thinplatespline.c, and uses the optimization where posible - except for v14.0.3.174 where it uses the unoptimized version (this could be fixed with further work if necessary). ",defect,closed,normal,2.0.3,default,unspecified,normal,fixed,,