Programming Languages on Power

Power Programming Languages

IBM Power, including the AIX, IBM i, and Linux operating systems, support a wide range of programming languages, catering to both traditional enterprise applications and modern development needs.


#Power

 View Only
  • 1.  xlf Compilation failed for file dlapack.f.

    Posted Tue April 23, 2019 01:21 AM

    Originally posted by: SantiagoZhang


    I am using xlc and xlf to build R source on power Linux, R open source has a Fortran library lapack.

    Now it reports error on a fortran file:

    xlf_r -q64 -qpic -g -O3 -qstrict -qfloat=nomaf:fenv -qextname -c dlapack.f -o dlapack.o

    gmake[4]: Entering directory `/root/R-3.5.1/src/modules/lapack'
    xlf_r -q64 -qpic -g -O3 -qstrict -qfloat=nomaf:fenv -qextname -c dlapack.f -o dlapack.o
    ** dbbcsd === End of Compilation 1 ===
    ** dbdsdc === End of Compilation 2 ===
    ** dbdsqr === End of Compilation 3 ===
    ** ddisna === End of Compilation 4 ===
    ** dgbbrd === End of Compilation 5 ===
    ** dgbcon === End of Compilation 6 ===
    ** dgbequ === End of Compilation 7 ===
    ** dgbequb === End of Compilation 8 ===
    ** dgbrfs === End of Compilation 9 ===
    ** dgbsv === End of Compilation 10 ===
    ** dgbsvx === End of Compilation 11 ===
    ** dgbtf2 === End of Compilation 12 ===
    ** dgbtrf === End of Compilation 13 ===
    ** dgbtrs === End of Compilation 14 ===
    ** dgebak === End of Compilation 15 ===
    ** dgebal === End of Compilation 16 ===
    ** dgebd2 === End of Compilation 17 ===
    ** dgebrd === End of Compilation 18 ===
    ** dgecon === End of Compilation 19 ===
    ** dgeequ === End of Compilation 20 ===
    ** dgeequb === End of Compilation 21 ===
    ** dgees === End of Compilation 22 ===
    ** dgeesx === End of Compilation 23 ===
    ** dgeev === End of Compilation 24 ===
    ** dgeevx === End of Compilation 25 ===
    ** dgegs === End of Compilation 26 ===
    ** dgegv === End of Compilation 27 ===
    ** dgehd2 === End of Compilation 28 ===
    ** dgehrd === End of Compilation 29 ===
    ** dgejsv === End of Compilation 30 ===
    ** dgelq2 === End of Compilation 31 ===
    ** dgelqf === End of Compilation 32 ===
    ** dgels === End of Compilation 33 ===
    ** dgelsd === End of Compilation 34 ===
    ** dgelss === End of Compilation 35 ===
    ** dgelsx === End of Compilation 36 ===
    ** dgelsy === End of Compilation 37 ===
    ** dgemqrt === End of Compilation 38 ===
    ** dgeql2 === End of Compilation 39 ===
    ** dgeqlf === End of Compilation 40 ===
    ** dgeqp3 === End of Compilation 41 ===
    ** dgeqpf === End of Compilation 42 ===
    ** dgeqr2 === End of Compilation 43 ===
    ** dgeqr2p === End of Compilation 44 ===
    ** dgeqrf === End of Compilation 45 ===
    ** dgeqrfp === End of Compilation 46 ===
    ** dgeqrt === End of Compilation 47 ===
    ** dgeqrt2 === End of Compilation 48 ===
    ** dgeqrt3 === End of Compilation 49 ===
    ** dgerfs === End of Compilation 50 ===
    ** dgerq2 === End of Compilation 51 ===
    ** dgerqf === End of Compilation 52 ===
    ** dgesc2 === End of Compilation 53 ===
    ** dgesdd === End of Compilation 54 ===
    ** dgesv === End of Compilation 55 ===
    ** dgesvd === End of Compilation 56 ===
    ** dgesvj === End of Compilation 57 ===
    ** dgesvx === End of Compilation 58 ===
    ** dgetc2 === End of Compilation 59 ===
    ** dgetf2 === End of Compilation 60 ===
    ** dgetrf === End of Compilation 61 ===
    ** dgetrf2 === End of Compilation 62 ===
    ** dgetri === End of Compilation 63 ===
    ** dgetrs === End of Compilation 64 ===
    ** dggbak === End of Compilation 65 ===
    ** dggbal === End of Compilation 66 ===
    ** dgges === End of Compilation 67 ===
    ** dggesx === End of Compilation 68 ===
    ** dggev === End of Compilation 69 ===
    ** dggevx === End of Compilation 70 ===
    ** dggglm === End of Compilation 71 ===
    ** dgghrd === End of Compilation 72 ===
    ** dgglse === End of Compilation 73 ===
    ** dggqrf === End of Compilation 74 ===
    ** dggrqf === End of Compilation 75 ===
    ** dggsvd === End of Compilation 76 ===
    ** dggsvp === End of Compilation 77 ===
    ** dgsvj0 === End of Compilation 78 ===
    ** dgsvj1 === End of Compilation 79 ===
    ** dgtcon === End of Compilation 80 ===
    ** dgtrfs === End of Compilation 81 ===
    ** dgtsv === End of Compilation 82 ===
    ** dgtsvx === End of Compilation 83 ===
    ** dgttrf === End of Compilation 84 ===
    ** dgttrs === End of Compilation 85 ===
    ** dgtts2 === End of Compilation 86 ===
    ** dhgeqz === End of Compilation 87 ===
    ** dhsein === End of Compilation 88 ===
    ** dhseqr === End of Compilation 89 ===
    ** disnan === End of Compilation 90 ===
    ** dlabad === End of Compilation 91 ===
    ** dlabrd === End of Compilation 92 ===
    ** dlacn2 === End of Compilation 93 ===
    ** dlacon === End of Compilation 94 ===
    ** dlacpy === End of Compilation 95 ===
    ** dladiv === End of Compilation 96 ===
    ** dladiv1 === End of Compilation 97 ===
    ** dladiv2 === End of Compilation 98 ===
    ** dlae2 === End of Compilation 99 ===
    ** dlaebz === End of Compilation 100 ===
    ** dlaed0 === End of Compilation 101 ===
    ** dlaed1 === End of Compilation 102 ===
    ** dlaed2 === End of Compilation 103 ===
    ** dlaed3 === End of Compilation 104 ===
    ** dlaed4 === End of Compilation 105 ===
    ** dlaed5 === End of Compilation 106 ===
    ** dlaed6 === End of Compilation 107 ===
    ** dlaed7 === End of Compilation 108 ===
    ** dlaed8 === End of Compilation 109 ===
    ** dlaed9 === End of Compilation 110 ===
    ** dlaeda === End of Compilation 111 ===
    ** dlaein === End of Compilation 112 ===
    ** dlaev2 === End of Compilation 113 ===
    ** dlaexc === End of Compilation 114 ===
    ** dlag2 === End of Compilation 115 ===
    ** dlags2 === End of Compilation 116 ===
    ** dlagtf === End of Compilation 117 ===
    ** dlagtm === End of Compilation 118 ===
    ** dlagts === End of Compilation 119 ===
    ** dlagv2 === End of Compilation 120 ===
    ** dlahqr === End of Compilation 121 ===
    ** dlahr2 === End of Compilation 122 ===
    ** dlahrd === End of Compilation 123 ===
    ** dlaic1 === End of Compilation 124 ===
    ** dlaisnan === End of Compilation 125 ===
    ** dlaln2 === End of Compilation 126 ===
    ** dlals0 === End of Compilation 127 ===
    ** dlalsa === End of Compilation 128 ===
    ** dlalsd === End of Compilation 129 ===
    ** dlamrg === End of Compilation 130 ===
    ** dlaneg === End of Compilation 131 ===
    ** dlangb === End of Compilation 132 ===
    ** dlange === End of Compilation 133 ===
    ** dlangt === End of Compilation 134 ===
    ** dlanhs === End of Compilation 135 ===
    ** dlansb === End of Compilation 136 ===
    ** dlansf === End of Compilation 137 ===
    ** dlansp === End of Compilation 138 ===
    ** dlanst === End of Compilation 139 ===
    ** dlansy === End of Compilation 140 ===
    ** dlantb === End of Compilation 141 ===
    ** dlantp === End of Compilation 142 ===
    ** dlantr === End of Compilation 143 ===
    ** dlanv2 === End of Compilation 144 ===
    ** dlapll === End of Compilation 145 ===
    ** dlapmr === End of Compilation 146 ===
    ** dlapmt === End of Compilation 147 ===
    ** dlapy2 === End of Compilation 148 ===
    ** dlapy3 === End of Compilation 149 ===
    ** dlaqgb === End of Compilation 150 ===
    ** dlaqge === End of Compilation 151 ===
    ** dlaqp2 === End of Compilation 152 ===
    ** dlaqps === End of Compilation 153 ===
    ** dlaqr0 === End of Compilation 154 ===
    ** dlaqr1 === End of Compilation 155 ===
    ** dlaqr2 === End of Compilation 156 ===
    ** dlaqr3 === End of Compilation 157 ===
    ** dlaqr4 === End of Compilation 158 ===
    ** dlaqr5 === End of Compilation 159 ===
    ** dlaqsb === End of Compilation 160 ===
    ** dlaqsp === End of Compilation 161 ===
    ** dlaqsy === End of Compilation 162 ===
    ** dlaqtr === End of Compilation 163 ===
    ** dlar1v === End of Compilation 164 ===
    ** dlar2v === End of Compilation 165 ===
    ** dlarf === End of Compilation 166 ===
    ** dlarfb === End of Compilation 167 ===
    ** dlarfg === End of Compilation 168 ===
    ** dlarfgp === End of Compilation 169 ===
    ** dlarft === End of Compilation 170 ===
    ** dlarfx === End of Compilation 171 ===
    ** dlargv === End of Compilation 172 ===
    ** dlarnv === End of Compilation 173 ===
    ** dlarra === End of Compilation 174 ===
    ** dlarrb === End of Compilation 175 ===
    ** dlarrc === End of Compilation 176 ===
    ** dlarrd === End of Compilation 177 ===
    ** dlarre === End of Compilation 178 ===
    ** dlarrf === End of Compilation 179 ===
    ** dlarrj === End of Compilation 180 ===
    ** dlarrk === End of Compilation 181 ===
    ** dlarrr === End of Compilation 182 ===
    ** dlarrv === End of Compilation 183 ===
    ** dlarscl2 === End of Compilation 184 ===
    ** dlartg === End of Compilation 185 ===
    ** dlartgp === End of Compilation 186 ===
    ** dlartgs === End of Compilation 187 ===
    ** dlartv === End of Compilation 188 ===
    ** dlaruv === End of Compilation 189 ===
    ** dlarz === End of Compilation 190 ===
    ** dlarzb === End of Compilation 191 ===
    ** dlarzt === End of Compilation 192 ===
    ** dlas2 === End of Compilation 193 ===
    ** dlascl === End of Compilation 194 ===
    ** dlascl2 === End of Compilation 195 ===
    ** dlasd0 === End of Compilation 196 ===
    ** dlasd1 === End of Compilation 197 ===
    ** dlasd2 === End of Compilation 198 ===
    ** dlasd3 === End of Compilation 199 ===
    ** dlasd4 === End of Compilation 200 ===
    ** dlasd5 === End of Compilation 201 ===
    ** dlasd6 === End of Compilation 202 ===
    ** dlasd7 === End of Compilation 203 ===
    ** dlasd8 === End of Compilation 204 ===
    ** dlasda === End of Compilation 205 ===
    ** dlasdq === End of Compilation 206 ===
    ** dlasdt === End of Compilation 207 ===
    ** dlaset === End of Compilation 208 ===
    ** dlasq1 === End of Compilation 209 ===
    ** dlasq2 === End of Compilation 210 ===
    ** dlasq3 === End of Compilation 211 ===
    ** dlasq4 === End of Compilation 212 ===
    ** dlasq5 === End of Compilation 213 ===
    ** dlasq6 === End of Compilation 214 ===
    ** dlasr === End of Compilation 215 ===
    ** dlasrt === End of Compilation 216 ===
    ** dlassq === End of Compilation 217 ===
    ** dlasv2 === End of Compilation 218 ===
    ** dlaswp === End of Compilation 219 ===
    ** dlasy2 === End of Compilation 220 ===
    ** dlasyf === End of Compilation 221 ===
    ** dlatbs === End of Compilation 222 ===
    ** dlatdf === End of Compilation 223 ===
    ** dlatps === End of Compilation 224 ===
    ** dlatrd === End of Compilation 225 ===
    ** dlatrs === End of Compilation 226 ===
    ** dlatrz === End of Compilation 227 ===
    ** dlatzm === End of Compilation 228 ===
    ** dlauu2 === End of Compilation 229 ===
    ** dlauum === End of Compilation 230 ===
    ** dopgtr === End of Compilation 231 ===
    ** dopmtr === End of Compilation 232 ===
    ** dorbdb === End of Compilation 233 ===
    ** dorcsd === End of Compilation 234 ===
    ** dorg2l === End of Compilation 235 ===
    ** dorg2r === End of Compilation 236 ===
    ** dorgbr === End of Compilation 237 ===
    ** dorghr === End of Compilation 238 ===
    ** dorgl2 === End of Compilation 239 ===
    ** dorglq === End of Compilation 240 ===
    ** dorgql === End of Compilation 241 ===
    ** dorgqr === End of Compilation 242 ===
    ** dorgr2 === End of Compilation 243 ===
    ** dorgrq === End of Compilation 244 ===
    ** dorgtr === End of Compilation 245 ===
    ** dorm2l === End of Compilation 246 ===
    ** dorm2r === End of Compilation 247 ===
    ** dormbr === End of Compilation 248 ===
    ** dormhr === End of Compilation 249 ===
    ** dorml2 === End of Compilation 250 ===
    ** dormlq === End of Compilation 251 ===
    ** dormql === End of Compilation 252 ===
    ** dormqr === End of Compilation 253 ===
    ** dormr2 === End of Compilation 254 ===
    ** dormr3 === End of Compilation 255 ===
    ** dormrq === End of Compilation 256 ===
    ** dormrz === End of Compilation 257 ===
    ** dormtr === End of Compilation 258 ===
    ** dpbcon === End of Compilation 259 ===
    ** dpbequ === End of Compilation 260 ===
    ** dpbrfs === End of Compilation 261 ===
    ** dpbstf === End of Compilation 262 ===
    ** dpbsv === End of Compilation 263 ===
    ** dpbsvx === End of Compilation 264 ===
    ** dpbtf2 === End of Compilation 265 ===
    ** dpbtrf === End of Compilation 266 ===
    ** dpbtrs === End of Compilation 267 ===
    ** dpftrf === End of Compilation 268 ===
    ** dpftri === End of Compilation 269 ===
    ** dpftrs === End of Compilation 270 ===
    ** dpocon === End of Compilation 271 ===
    ** dpoequ === End of Compilation 272 ===
    ** dpoequb === End of Compilation 273 ===
    ** dporfs === End of Compilation 274 ===
    ** dposv === End of Compilation 275 ===
    ** dposvx === End of Compilation 276 ===
    ** dpotf2 === End of Compilation 277 ===
    ** dpotrf === End of Compilation 278 ===
    ** dpotrf2 === End of Compilation 279 ===
    ** dpotri === End of Compilation 280 ===
    ** dpotrs === End of Compilation 281 ===
    ** dppcon === End of Compilation 282 ===
    ** dppequ === End of Compilation 283 ===
    ** dpprfs === End of Compilation 284 ===
    ** dppsv === End of Compilation 285 ===
    ** dppsvx === End of Compilation 286 ===
    ** dpptrf === End of Compilation 287 ===
    ** dpptri === End of Compilation 288 ===
    ** dpptrs === End of Compilation 289 ===
    ** dpstf2 === End of Compilation 290 ===
    ** dpstrf === End of Compilation 291 ===
    ** dptcon === End of Compilation 292 ===
    ** dpteqr === End of Compilation 293 ===
    ** dptrfs === End of Compilation 294 ===
    ** dptsv === End of Compilation 295 ===
    ** dptsvx === End of Compilation 296 ===
    ** dpttrf === End of Compilation 297 ===
    ** dpttrs === End of Compilation 298 ===
    ** dptts2 === End of Compilation 299 ===
    ** drscl === End of Compilation 300 ===
    ** dsbev === End of Compilation 301 ===
    ** dsbevd === End of Compilation 302 ===
    ** dsbevx === End of Compilation 303 ===
    ** dsbgst === End of Compilation 304 ===
    ** dsbgv === End of Compilation 305 ===
    ** dsbgvd === End of Compilation 306 ===
    ** dsbgvx === End of Compilation 307 ===
    ** dsbtrd === End of Compilation 308 ===
    ** dsfrk === End of Compilation 309 ===
    ** dspcon === End of Compilation 310 ===
    ** dspev === End of Compilation 311 ===
    ** dspevd === End of Compilation 312 ===
    ** dspevx === End of Compilation 313 ===
    ** dspgst === End of Compilation 314 ===
    ** dspgv === End of Compilation 315 ===
    ** dspgvd === End of Compilation 316 ===
    ** dspgvx === End of Compilation 317 ===
    ** dsprfs === End of Compilation 318 ===
    ** dspsv === End of Compilation 319 ===
    ** dspsvx === End of Compilation 320 ===
    ** dsptrd === End of Compilation 321 ===
    ** dsptrf === End of Compilation 322 ===
    ** dsptri === End of Compilation 323 ===
    ** dsptrs === End of Compilation 324 ===
    ** dstebz === End of Compilation 325 ===
    ** dstedc === End of Compilation 326 ===
    ** dstegr === End of Compilation 327 ===
    ** dstein === End of Compilation 328 ===
    ** dstemr === End of Compilation 329 ===
    ** dsteqr === End of Compilation 330 ===
    ** dsterf === End of Compilation 331 ===
    ** dstev === End of Compilation 332 ===
    ** dstevd === End of Compilation 333 ===
    ** dstevr === End of Compilation 334 ===
    ** dstevx === End of Compilation 335 ===
    ** dsycon === End of Compilation 336 ===
    ** dsyconv === End of Compilation 337 ===
    ** dsyequb === End of Compilation 338 ===
    ** dsyev === End of Compilation 339 ===
    ** dsyevd === End of Compilation 340 ===
    ** dsyevr === End of Compilation 341 ===
    ** dsyevx === End of Compilation 342 ===
    ** dsygs2 === End of Compilation 343 ===
    ** dsygst === End of Compilation 344 ===
    ** dsygv === End of Compilation 345 ===
    ** dsygvd === End of Compilation 346 ===
    ** dsygvx === End of Compilation 347 ===
    ** dsyrfs === End of Compilation 348 ===
    ** dsysv === End of Compilation 349 ===
    ** dsysvx === End of Compilation 350 ===
    ** dsyswapr === End of Compilation 351 ===
    ** dsytd2 === End of Compilation 352 ===
    ** dsytf2 === End of Compilation 353 ===
    ** dsytrd === End of Compilation 354 ===
    ** dsytrf === End of Compilation 355 ===
    ** dsytri === End of Compilation 356 ===
    ** dsytri2 === End of Compilation 357 ===
    ** dsytri2x === End of Compilation 358 ===
    ** dsytrs === End of Compilation 359 ===
    ** dsytrs2 === End of Compilation 360 ===
    ** dtbcon === End of Compilation 361 ===
    ** dtbrfs === End of Compilation 362 ===
    ** dtbtrs === End of Compilation 363 ===
    ** dtfsm === End of Compilation 364 ===
    ** dtftri === End of Compilation 365 ===
    ** dtfttp === End of Compilation 366 ===
    ** dtfttr === End of Compilation 367 ===
    ** dtgevc === End of Compilation 368 ===
    ** dtgex2 === End of Compilation 369 ===
    ** dtgexc === End of Compilation 370 ===
    ** dtgsen === End of Compilation 371 ===
    ** dtgsja === End of Compilation 372 ===
    ** dtgsna === End of Compilation 373 ===
    ** dtgsy2 === End of Compilation 374 ===
    ** dtgsyl === End of Compilation 375 ===
    ** dtpcon === End of Compilation 376 ===
    ** dtpmqrt === End of Compilation 377 ===
    ** dtpqrt === End of Compilation 378 ===
    ** dtpqrt2 === End of Compilation 379 ===
    ** dtprfb === End of Compilation 380 ===
    ** dtprfs === End of Compilation 381 ===
    ** dtptri === End of Compilation 382 ===
    ** dtptrs === End of Compilation 383 ===
    ** dtpttf === End of Compilation 384 ===
    ** dtpttr === End of Compilation 385 ===
    ** dtrcon === End of Compilation 386 ===
    ** dtrevc === End of Compilation 387 ===
    ** dtrevc3 === End of Compilation 388 ===
    ** dtrexc === End of Compilation 389 ===
    ** dtrrfs === End of Compilation 390 ===
    ** dtrsen === End of Compilation 391 ===
    ** dtrsna === End of Compilation 392 ===
    ** dtrsyl === End of Compilation 393 ===
    ** dtrti2 === End of Compilation 394 ===
    ** dtrtri === End of Compilation 395 ===
    ** dtrtrs === End of Compilation 396 ===
    ** dtrttf === End of Compilation 397 ===
    ** dtrttp === End of Compilation 398 ===
    ** dtzrqf === End of Compilation 399 ===
    ** dtzrzf === End of Compilation 400 ===
    ** ieeeck === End of Compilation 401 ===
    ** iladlc === End of Compilation 402 ===
    ** iladlr === End of Compilation 403 ===
    ** ilaenv === End of Compilation 404 ===
    ** ilaprec === End of Compilation 405 ===
    ** ilatrans === End of Compilation 406 ===
    ** ilaver === End of Compilation 407 ===
    "dlapack.f", line 164966.0: 1515-005 (S) Continuation line is not permitted at beginning of program or after INCLUDE, EJECT, @PROCESS statements or comment directive. Line is ignored.
    "dlapack.f", line 164967.0: 1515-005 (S) Continuation line is not permitted at beginning of program or after INCLUDE, EJECT, @PROCESS statements or comment directive. Line is ignored.
    "dlapack.f", line 164968.0: 1515-005 (S) Continuation line is not permitted at beginning of program or after INCLUDE, EJECT, @PROCESS statements or comment directive. Line is ignored.
    "dlapack.f", line 164969.1: 1515-017 (S) Label contains characters that are not permitted. Label is ignored.
    "dlapack.f", line 164969.7: 1515-019 (S) Syntax is incorrect.
    "dlapack.f", line 164972.0: 1515-010 (S) String is missing a closing delimiter. Closing delimiter assumed at end of line.
    "dlapack.f", 1515-002 (S) END card is missing. One is assumed.
    ** _main === End of Compilation 408 ===
    ** iparam2stage === End of Compilation 409 ===
    ** iparmq === End of Compilation 410 ===
    1501-511 Compilation failed for file dlapack.f.
    gmake[4]: *** [dlapack.o] Error 1
    gmake[4]: Leaving directory `/root/R-3.5.1/src/modules/lapack'
    gmake[3]: *** [R] Error 2
    gmake[3]: Leaving directory `/root/R-3.5.1/src/modules/lapack'
    gmake[2]: *** [make.lapack] Error 2
    gmake[2]: Leaving directory `/root/R-3.5.1/src/modules'
    gmake[1]: *** [R] Error 1
    gmake[1]: Leaving directory `/root/R-3.5.1/src'
    gmake: *** [R] Error 1

     

     

    The gfortran can work, so I guess this is a xlf issue or I used the wrong configuration. could you help on this?


     


    #Ask-Question-Here--General-Compiler-Q-and-A
    #C/C++andFortran


  • 2.  Re: xlf Compilation failed for file dlapack.f.

    Posted Tue April 23, 2019 06:21 PM

    Originally posted by: Daniel C Chen


    Hi SantiagoZhang,


    Thanks for sharing your issue with us.
    It seems the problem is that you are using GNU cpp instead of the cpp that XLF provides to preprocess dlapack.F. The lines that caused the error are like:

    # 1 "SRC/iparam2stage.F"
    # 1 "<built-in>" 1
    # 1 "<built-in>" 3
    # 330 "<built-in>" 3
    # 1 "<command line>" 1
    # 1 "<built-in>" 2
    # 1 "SRC/iparam2stage.F" 2

     

    XLF does not support this format. The lines out of XLF's cpp would look like:
     

    #line 1 "SRC/iparam2stage.F"
    #line 1 "<built-in>"
    #line 1 "<built-in>"
    #line 330 "<built-in>"
    #line 1 "<command line>"
    #line 1 "<built-in>"
    #line 1 "SRC/iparam2stage.F" 

     

    Please note the addition of "line" after "#" as well as the omission of those trailing digits.

    To solve the issue,
    1. I would highly recommend using the cpp that comes with XLF compiler to preprocess your source code. 
    2. as a temporary work around of this particular file, you can do "xlf -qpreprocess", which will invoke XLF preprocessor to remove the lines that begin with "#".


    #C/C++andFortran
    #Ask-Question-Here--General-Compiler-Q-and-A


  • 3.  Re: xlf Compilation failed for file dlapack.f.

    Posted Wed April 24, 2019 04:24 AM

    Originally posted by: SantiagoZhang


    thanks a lot for your answer.

    For your solution 1, how do I configure to use cpp that comes with XLF?

     

    I tried the work around 2, to use "xlf -qpreprocess"  on particular file(dlapack.f), then gmake with the converted file, it works fine.

    But if I set the -qpreprocess  in global like this, some other fortran files will fail:

    export F77="xlf_r -q64"
    export FFLAGS="-qpreprocess -g -O3 -qstrict -qfloat=nomaf:fenv -qextname"

     

    For AIX, I also met the same issue, use work around 2, it also works fine.


    #Ask-Question-Here--General-Compiler-Q-and-A
    #C/C++andFortran


  • 4.  Re: xlf Compilation failed for file dlapack.f.

    Posted Wed April 24, 2019 09:55 AM

    Originally posted by: Daniel C Chen


    Hi SantiagoZhang,


    The XLF cpp is automatically invoked by the XLF driver when you compile the file using XLF directly as "xlf lapack.F", as long as the file suffix is one of the valid Fortran file suffix with upper case "F" such as "a.F", "b.F90" and etc. What -qpreprocess option does is to tell the driver to also invoke XLF cpp as long as the file suffix is a valid Fortran suffix that includes lower case "f" (e.g. "a.f", "b.f90"). That is why when you tried "xlf_r dlapack.f -qpreprocess", the XLF driver invoked cpp to remove those unsupported lines that begin with "#". 


    I will have to see the failure in order to tell why if failed when you add -qpreprocess option globally. You normally don't need -qpreprocess option as long as your files are properly suffixed with upper case "F" as the XLF driver will invoke cpp for valid upper case file suffix. 

    Can you check your makefiles and see if it has invoked GNU cpp at some places, which generated unsupported format as in dlapack.f? I think removing the invocation of GNU cpp and let XLF driver take care of the preprocess is the right solution.

     

    Daniel


    #Ask-Question-Here--General-Compiler-Q-and-A
    #C/C++andFortran


  • 5.  Re: xlf Compilation failed for file dlapack.f.

    Posted Wed April 24, 2019 09:34 PM

    Originally posted by: SantiagoZhang


    Thanks again, it helps a lot.


    #Ask-Question-Here--General-Compiler-Q-and-A
    #C/C++andFortran