can't compile on Mac OS 10.13 and PGI 17.10

Hi All,

I have a Macbook Pro from 2014 with 16 GB RAM, running OS 10.13. I have downloaded the Community version 17.10. I have a somewhat long FORTRAN code that won’t compile using pgfortran:

pgfortran  -o foo foo.for
ld: warning: object file (ELC.o) was built for newer OSX version (10.13) than being linked (10.10.5)
final section layout:
    __TEXT/__text addr=0x100001730, size=0x001B65C7, fileOffset=0x00001730, type=1
    __TEXT/__stubs addr=0x1001B7CF8, size=0x00000222, fileOffset=0x001B7CF8, type=28
    __TEXT/__stub_helper addr=0x1001B7F1C, size=0x0000039E, fileOffset=0x001B7F1C, type=32
    __TEXT/__cstring addr=0x1001B82C0, size=0x0000358B, fileOffset=0x001B82C0, type=13
    __TEXT/__const addr=0x1001BB850, size=0x00002088, fileOffset=0x001BB850, type=0
    __TEXT/__ustring addr=0x1001BD8E0, size=0x00000022, fileOffset=0x001BD8E0, type=16
    __TEXT/__eh_frame addr=0x1001BD908, size=0x000006F0, fileOffset=0x001BD908, type=19
    __DATA/__dyld addr=0x1001BE000, size=0x00000010, fileOffset=0x001BE000, type=30
    __DATA/__got addr=0x1001BE010, size=0x00000068, fileOffset=0x001BE010, type=29
    __DATA/__nl_symbol_ptr addr=0x1001BE078, size=0x00000010, fileOffset=0x001BE078, type=29
    __DATA/__la_symbol_ptr addr=0x1001BE088, size=0x000002D8, fileOffset=0x001BE088, type=27
    __DATA/__const addr=0x1001BE360, size=0x00000740, fileOffset=0x001BE360, type=0
    __DATA/__data addr=0x1001BEAA0, size=0x149F5044, fileOffset=0x001BEAA0, type=0
    __DATA/__common addr=0x114BB8000, size=0x000339E0, fileOffset=0x00000000, type=25
    __DATA/__bss addr=0x114BEB9E0, size=0x0022A0B8, fileOffset=0x00000000, type=25
    __DATA/__huge addr=0x114E15AA0, size=0xBBE1DA80, fileOffset=0x00000000, type=25
ld: unexpected bindingNone in '_lightcurve_' from foo.o for architecture x86_64

This same code compiles using g95 on the laptop. It also compiles on Linux using gfortran and PGI, although it is necessary to use -mcmodel=medium flag there. On my laptop, the -mcmodel=medium flag is not available, and -Mlarge_arrays does not seem to do anything.

Any ideas on how to get the code to compile using PGI?

Jerry

I think the messages indicate you are trying to link CLANG objects
with objects created before CLANG. Apple does not want to support
old and new object compatibility. Where does ELC.o come from?

Look at or send the output of the link step with the added switches

-v -Wl,-t

to see where ELC.o comes from.


dave

Hi Dave,

Sorry, ELC is the actual name of the code. Forgot to change it in my example. Here is the output:

pgf90 -Mlarge_arrays -v -Wl,-t -o ELC ELC.for

Export PGI=/opt/pgi
Export PGIBIN=/opt/pgi/osx86-64/17.10/bin

/opt/pgi/osx86-64/17.10/bin/pgf901 ELC.for -opt 1 -nohpf -nostatic -quad -x 15 2 -x 49 0x400004 -x 51 0x20 -x 57 0x4c -x 58 0x10000 -x 124 0x1000 -x 119 0x1000 -x 59 4 -x 129 0x10 -x 51 0x20 -x 124 0x401 -x 19 0x400000 -tp haswell -x 57 0x7b0000 -x 58 0x78031040 -x 119 0x610400 -x 47 0x08 -x 119 0x1000 -x 59 4 -x 129 0x10 -x 48 4608 -x 49 0x100 -x 120 0x200 -stdinc /opt/pgi/osx86-64/17.10/include:/usr/local/include:/Applications/Xcode.app/Contents/Developer/usr/lib/llvm-gcc/4.2.1/include:/Applications/Xcode.app/Contents/Developer/usr/lib/llvm-gcc/4.2.1/include:/usr/include -cmdline '+pgf90 ELC.for -Mlarge_arrays -v -Wl,-t -o ELC' -def unix -def __unix -def __unix__ -def __LITTLE_ENDIAN__ -def __inline__= -def osx86 -def __osx86 -def __osx86__ -def __APPLE__ -def __LP64__ -def __x86_64__ -def _M_IX86 -def __NO_MATH_INLINES -def __amd64__ -def __PGI_STRPTIME -def __extension__= -def __SSE__ -def __MMX__ -def __SSE2__ -def __SSE3__ -def __SSSE3__ -def __PGI_7XC__ -def __PGI_XC_VER__=70200 -nofreeform -vect 48 -y 54 1 -x 70 0x40000000 -y 163 0xc0000000 -x 189 0x10 -x 68 0x1 -modexport /var/folders/fp/jbwhfbtn4l931pr2gfbmqfq00000gr/T/pgf90m7tpKtzA5AiJ.cmod -modindex /var/folders/fp/jbwhfbtn4l931pr2gfbmqfq00000gr/T/pgf90S7tpeWJdCWOG.cmdx -output /var/folders/fp/jbwhfbtn4l931pr2gfbmqfq00000gr/T/pgf90m7tpKgb9AYal.ilm
PGF90-I-0035-Predefined intrinsic iidint loses intrinsic property (ELC.for: 117)

[snip]

  1 inform,   0 warnings,   0 severes, 0 fatal for shortmethod2
  0 inform,   0 warnings,   0 severes, 0 fatal for indexx
PGF90/x86-64 OSX 17.10-0: compilation completed with informational messages

/opt/pgi/osx86-64/17.10/bin/pgf902 /var/folders/fp/jbwhfbtn4l931pr2gfbmqfq00000gr/T/pgf90m7tpKgb9AYal.ilm -fn ELC.for -opt 1 -x 119 0x10000010 -x 129 0x80 -x 19 0x400000 -dollar '$' -x 119 0x40610400 -x 119 0x1000 -x 59 4 -x 129 0x10 -x 70 0x8000 -x 122 1 -x 125 0x20000 -x 120 0x80 -x 122 0x40 -x 123 0x1000 -x 127 21 -tp haswell -y 80 0x40000000 -x 120 0x400 -x 120 0x1000 -y 119 0x40000000 -x 51 0x20 -x 124 0x401 -x 124 0x4000 -y 15 2 -x 57 0x3b0000 -x 58 0x48000000 -x 49 0x100 -x 120 0x200 -astype 1 -x 70 0x40000000 -x 117 0x2000 -x 124 1 -y 163 0xc0000000 -x 189 0x10 -y 189 0x4000000 -x 68 0x1 -cmdline '+pgf90 ELC.for -Mlarge_arrays -v -Wl,-t -o ELC' -asm /var/folders/fp/jbwhfbtn4l931pr2gfbmqfq00000gr/T/pgf90m7tpKWbM30Ux.s
  0 inform,   0 warnings,   0 severes, 0 fatal for elc
  0 inform,   0 warnings,   0 severes, 0 fatal for lightcurve

[snip]

PGF90/x86-64 OSX 17.10-0: compilation successful

/usr/bin/clang -x assembler -Qunused-arguments -arch x86_64 /var/folders/fp/jbwhfbtn4l931pr2gfbmqfq00000gr/T/pgf90m7tpKWbM30Ux.s -c -o ELC.o

/opt/pgi/osx86-64/17.10/bin/pgappend -noerror ELC.o -name .IPDINFO /var/folders/fp/jbwhfbtn4l931pr2gfbmqfq00000gr/T/pgf90m7tpKtzA5AiJ.cmod -name .IPEINFO /var/folders/fp/jbwhfbtn4l931pr2gfbmqfq00000gr/T/pgf90S7tpeWJdCWOG.cmdx

/opt/local/bin/ld /usr/lib/crt1.o /opt/pgi/osx86-64/17.10/lib/pgimainmx.o /opt/pgi/osx86-64/17.10/lib/f90main.o -L/opt/pgi/osx86-64/17.10/lib -L/usr/lib -L/Applications/Xcode.app/Contents/Developer/usr/lib/llvm-gcc/4.2.1 -t ELC.o -macosx_version_min 10.10.5 -rpath /opt/pgi/osx86-64/17.10/lib -o ELC -framework Security -framework IOKit -framework CoreFoundation -arch x86_64 -no_compact_unwind -no_pie -no_new_main -lpgmp -lpthread -lpgf90rtl -lpgf90 -lpgf90_rpm1 -lpgf902 -lpgf90rtl -lpgftnrtl -lc -lnspgc -lpgc -lm -lgcc -lc -lgcc -lSystem
/usr/lib/crt1.o
/opt/pgi/osx86-64/17.10/lib/pgimainmx.o
/opt/pgi/osx86-64/17.10/lib/f90main.o
/System/Library/Frameworks//Security.framework/Security
/System/Library/Frameworks//IOKit.framework/IOKit
/System/Library/Frameworks//CoreFoundation.framework/CoreFoundation
/usr/lib/libpthread.dylib
/usr/lib/libc.dylib
/usr/lib/libm.dylib
/usr/lib/libSystem.dylib
ELC.o
ld: warning: object file (ELC.o) was built for newer OSX version (10.13) than being linked (10.10.5)
/usr/lib/system/libcache.dylib
/usr/lib/system/libcommonCrypto.dylib
/usr/lib/system/libcompiler_rt.dylib
/usr/lib/system/libcopyfile.dylib
/usr/lib/system/libcorecrypto.dylib
/usr/lib/system/libdispatch.dylib
/usr/lib/system/libdyld.dylib
/usr/lib/system/libkeymgr.dylib
/usr/lib/system/liblaunch.dylib
/usr/lib/system/libmacho.dylib
/usr/lib/system/libquarantine.dylib
/usr/lib/system/libremovefile.dylib
/usr/lib/system/libsystem_asl.dylib
/usr/lib/system/libsystem_blocks.dylib
/usr/lib/system/libsystem_c.dylib
/usr/lib/system/libsystem_configuration.dylib
/usr/lib/system/libsystem_coreservices.dylib
/usr/lib/system/libsystem_darwin.dylib
/usr/lib/system/libsystem_dnssd.dylib
/usr/lib/system/libsystem_info.dylib
/usr/lib/system/libsystem_m.dylib
/usr/lib/system/libsystem_malloc.dylib
/usr/lib/system/libsystem_network.dylib
/usr/lib/system/libsystem_networkextension.dylib
/usr/lib/system/libsystem_notify.dylib
/usr/lib/system/libsystem_sandbox.dylib
/usr/lib/system/libsystem_secinit.dylib
/usr/lib/system/libsystem_kernel.dylib
/usr/lib/system/libsystem_platform.dylib
/usr/lib/system/libsystem_pthread.dylib
/usr/lib/system/libsystem_symptoms.dylib
/usr/lib/system/libsystem_trace.dylib
/usr/lib/system/libunwind.dylib
/usr/lib/system/libxpc.dylib
/opt/pgi/osx86-64/17.10/lib/libpgc.a(fastmath.o)
/opt/pgi/osx86-64/17.10/lib/libpgc.a(fastmod.o)
/opt/pgi/osx86-64/17.10/lib/libpgc.a(pgstdinit.o)
/opt/pgi/osx86-64/17.10/lib/libpgc.a(pgargs.o)
/opt/pgi/osx86-64/17.10/lib/libpgf90rtl.a(dacos.o)
/opt/pgi/osx86-64/17.10/lib/libpgf90rtl.a(dasin.o)
/opt/pgi/osx86-64/17.10/lib/libpgc.a(datan.o)
/opt/pgi/osx86-64/17.10/lib/libpgc.a(datan2.o)
/opt/pgi/osx86-64/17.10/lib/libpgc.a(dint.o)
/opt/pgi/osx86-64/17.10/lib/libpgc.a(dpowi.o)
/opt/pgi/osx86-64/17.10/lib/libpgc.a(idnint.o)
/opt/pgi/osx86-64/17.10/lib/libpgc.a(trace.o)
/opt/pgi/osx86-64/17.10/lib/libpgc.a(stkchk.o)
/opt/pgi/osx86-64/17.10/lib/libpgmp.a(preinit.o)
/opt/pgi/osx86-64/17.10/lib/libpgf90.a(initpar.o)
/opt/pgi/osx86-64/17.10/lib/libpgf90rtl.a(lnblnk3f.o)
/opt/pgi/osx86-64/17.10/lib/libpgf90.a(allo_i8.o)
/opt/pgi/osx86-64/17.10/lib/libpgf90.a(ftnexit.o)
/opt/pgi/osx86-64/17.10/lib/libpgf90.a(type_i8.o)
/opt/pgi/osx86-64/17.10/lib/libpgf90rtl.a(ftncharsup.o)
/opt/pgi/osx86-64/17.10/lib/libpgf90.a(rdst_i8.o)
/opt/pgi/osx86-64/17.10/lib/libpgf90.a(backspace.o)
/opt/pgi/osx86-64/17.10/lib/libpgf90.a(close.o)
/opt/pgi/osx86-64/17.10/lib/libpgf90.a(encodefmt.o)
/opt/pgi/osx86-64/17.10/lib/libpgf90.a(fmtread.o)
/opt/pgi/osx86-64/17.10/lib/libpgf90.a(fmtwrite.o)
/opt/pgi/osx86-64/17.10/lib/libpgf90.a(ldread.o)
/opt/pgi/osx86-64/17.10/lib/libpgf90.a(ldwrite.o)
/opt/pgi/osx86-64/17.10/lib/libpgf90.a(open.o)
/opt/pgi/osx86-64/17.10/lib/libpgf90.a(rewind.o)
/opt/pgi/osx86-64/17.10/lib/libpgf90.a(error.o)
/opt/pgi/osx86-64/17.10/lib/libpgf90.a(desc_i8.o)
/opt/pgi/osx86-64/17.10/lib/libpgf90rtl.a(system3f.o)
/opt/pgi/osx86-64/17.10/lib/libpgf90.a(async.o)
/opt/pgi/osx86-64/17.10/lib/libpgc.a(x86id.o)
/opt/pgi/osx86-64/17.10/lib/libpgc.a(trace_osx.o)
/opt/pgi/osx86-64/17.10/lib/libpgc.a(va_arg.o)
/opt/pgi/osx86-64/17.10/lib/libpgc.a(mset1.o)
/opt/pgi/osx86-64/17.10/lib/libpgf90rtl.a(utils3f.o)
/opt/pgi/osx86-64/17.10/lib/libpgf90.a(allo.o)
/opt/pgi/osx86-64/17.10/lib/libpgf90.a(fmtconv.o)
/opt/pgi/osx86-64/17.10/lib/libpgf90.a(unf.o)
/opt/pgi/osx86-64/17.10/lib/libpgc.a(pgfenv.o)
/opt/pgi/osx86-64/17.10/lib/libpgf90_rpm1.a(init_rpm1.o)
/opt/pgi/osx86-64/17.10/lib/libpgf90.a(utilsi64.o)
/opt/pgi/osx86-64/17.10/lib/libpgf902.a(bcopy.o)
/opt/pgi/osx86-64/17.10/lib/libpgf902.a(bcopys.o)
/opt/pgi/osx86-64/17.10/lib/libpgf90.a(dist_i8.o)
/opt/pgi/osx86-64/17.10/lib/libpgf90.a(entry.o)
/opt/pgi/osx86-64/17.10/lib/libpgf90.a(malloc.o)
/opt/pgi/osx86-64/17.10/lib/libpgf90.a(xfer.o)
/opt/pgi/osx86-64/17.10/lib/libpgf902.a(const.o)
/opt/pgi/osx86-64/17.10/lib/libpgf90.a(dist.o)
/opt/pgi/osx86-64/17.10/lib/libpgf90.a(version.o)
/opt/pgi/osx86-64/17.10/lib/libpgf90.a(rw.o)
/opt/pgi/osx86-64/17.10/lib/libpgf90.a(stat_osx.o)
/opt/pgi/osx86-64/17.10/lib/libpgf90.a(hpfio.o)
/opt/pgi/osx86-64/17.10/lib/libpgf90.a(atol.o)
/opt/pgi/osx86-64/17.10/lib/libpgf90.a(defs.o)
/opt/pgi/osx86-64/17.10/lib/libpgf902.a(buffer.o)
/opt/pgi/osx86-64/17.10/lib/libpgf90.a(utils.o)
/opt/pgi/osx86-64/17.10/lib/libpgf90.a(assign.o)
/opt/pgi/osx86-64/17.10/lib/libpgf902.a(cnfg.o)
/opt/pgi/osx86-64/17.10/lib/libpgf90.a(format-double.o)
/opt/pgi/osx86-64/17.10/lib/libpgf90.a(fmtgetnum.o)
/opt/pgi/osx86-64/17.10/lib/libpgf90.a(hpfio_hpf_i8.o)
/opt/pgi/osx86-64/17.10/lib/libpgc.a(sincosp.o)
/opt/pgi/osx86-64/17.10/lib/libpgc.a(dsincosp.o)
/opt/pgi/osx86-64/17.10/lib/libpgc.a(dsincos.o)
/opt/pgi/osx86-64/17.10/lib/libpgc.a(dtan.o)
/opt/pgi/osx86-64/17.10/lib/libpgc.a(sincos.o)
/opt/pgi/osx86-64/17.10/lib/libpgc.a(tan.o)
/opt/pgi/osx86-64/17.10/lib/libpgc.a(mxcsr.o)
/opt/pgi/osx86-64/17.10/lib/libpgc.a(rtcrit.o)
/opt/pgi/osx86-64/17.10/lib/libpgc.a(mpmalloc.o)
/opt/pgi/osx86-64/17.10/lib/libpgmp.a(init_pthr.o)
/opt/pgi/osx86-64/17.10/lib/libpgmp.a(crit.o)
/opt/pgi/osx86-64/17.10/lib/libpgmp.a(preinit2.o)
/opt/pgi/osx86-64/17.10/lib/libpgf90.a(pgifiodf.o)
/opt/pgi/osx86-64/17.10/lib/libpgf90.a(desc.o)
/opt/pgi/osx86-64/17.10/lib/libpgf90.a(ptr_i8.o)
/opt/pgi/osx86-64/17.10/lib/libpgf90_rpm1.a(xfer_rpm1.o)
/opt/pgi/osx86-64/17.10/lib/libpgf902.a(cprof2.o)
/opt/pgi/osx86-64/17.10/lib/libpgf902.a(cprof.o)
/opt/pgi/osx86-64/17.10/lib/libpgf902.a(hand.o)
/opt/pgi/osx86-64/17.10/lib/libpgf902.a(stat.o)
/opt/pgi/osx86-64/17.10/lib/libpgf902.a(trace2.o)
/opt/pgi/osx86-64/17.10/lib/libpgf902.a(trace.o)
/opt/pgi/osx86-64/17.10/lib/libpgf90.a(fpcvt.o)
/opt/pgi/osx86-64/17.10/lib/libpgf90.a(hpfio_i8.o)
/opt/pgi/osx86-64/17.10/lib/libpgf90.a(hpfio_hpf.o)
/opt/pgi/osx86-64/17.10/lib/libpgc.a(pgtempnam.o)
/opt/pgi/osx86-64/17.10/lib/libpgc.a(cpuid.o)
/opt/pgi/osx86-64/17.10/lib/libpgc.a(unified7.o)
/opt/pgi/osx86-64/17.10/lib/libpgmp.a(lcpu.o)
/opt/pgi/osx86-64/17.10/lib/libpgmp.a(setaff.o)
/opt/pgi/osx86-64/17.10/lib/libpgmp.a(omp_parallel.o)
/opt/pgi/osx86-64/17.10/lib/libpgf90.a(type.o)
/opt/pgi/osx86-64/17.10/lib/libpgf90.a(copy.o)
/opt/pgi/osx86-64/17.10/lib/libpgf90.a(copy_i8.o)
/opt/pgi/osx86-64/17.10/lib/libpgf90.a(comm.o)
/opt/pgi/osx86-64/17.10/lib/libpgf90.a(comm_i8.o)
/opt/pgi/osx86-64/17.10/lib/libpgf90.a(rdst.o)
/opt/pgi/osx86-64/17.10/lib/libpgc.a(cbzero.o)
/opt/pgi/osx86-64/17.10/lib/libpgf902.a(chn1t1.o)
/opt/pgi/osx86-64/17.10/lib/libpgmp.a(barrier.o)
/opt/pgi/osx86-64/17.10/lib/libpgmp.a(taskv2.o)
/opt/pgi/osx86-64/17.10/lib/libpgmp.a(nesting.o)
/opt/pgi/osx86-64/17.10/lib/libpgf90.a(ptr.o)
/opt/pgi/osx86-64/17.10/lib/libpgf902.a(genlist.o)
/opt/pgi/osx86-64/17.10/lib/libpgmp.a(task64v2.o)
/opt/pgi/osx86-64/17.10/lib/libpgmp.a(hash.o)
final section layout:
    __TEXT/__text addr=0x100000BD0, size=0x001B6127, fileOffset=0x00000BD0, type=1
    __TEXT/__stubs addr=0x1001B6CF8, size=0x00000222, fileOffset=0x001B6CF8, type=28
    __TEXT/__stub_helper addr=0x1001B6F1C, size=0x0000039E, fileOffset=0x001B6F1C, type=32
    __TEXT/__cstring addr=0x1001B72C0, size=0x0000358B, fileOffset=0x001B72C0, type=13
    __TEXT/__const addr=0x1001BA850, size=0x00002088, fileOffset=0x001BA850, type=0
    __TEXT/__ustring addr=0x1001BC8E0, size=0x00000022, fileOffset=0x001BC8E0, type=16
    __TEXT/__eh_frame addr=0x1001BC908, size=0x000006F0, fileOffset=0x001BC908, type=19
    __DATA/__dyld addr=0x1001BD000, size=0x00000010, fileOffset=0x001BD000, type=30
    __DATA/__got addr=0x1001BD010, size=0x00000068, fileOffset=0x001BD010, type=29
    __DATA/__nl_symbol_ptr addr=0x1001BD078, size=0x00000010, fileOffset=0x001BD078, type=29
    __DATA/__la_symbol_ptr addr=0x1001BD088, size=0x000002D8, fileOffset=0x001BD088, type=27
    __DATA/__const addr=0x1001BD360, size=0x00000740, fileOffset=0x001BD360, type=0
    __DATA/__data addr=0x1001BDAA0, size=0x149F5104, fileOffset=0x001BDAA0, type=0
    __DATA/__common addr=0x114BB8000, size=0x000339E0, fileOffset=0x00000000, type=25
    __DATA/__bss addr=0x114BEB9E0, size=0x0022A0B8, fileOffset=0x00000000, type=25
    __DATA/__huge addr=0x114E15AA0, size=0xBBE1DA80, fileOffset=0x00000000, type=25
ld: unexpected bindingNone in '_lightcurve_' from ELC.o for architecture x86_64
pgf90-Fatal-linker completed with exit code 1

Unlinking /var/folders/fp/jbwhfbtn4l931pr2gfbmqfq00000gr/T/pgf90m7tpKgb9AYal.ilm
Unlinking /var/folders/fp/jbwhfbtn4l931pr2gfbmqfq00000gr/T/pgf90S7tpe7jB_qEP.stb
Unlinking /var/folders/fp/jbwhfbtn4l931pr2gfbmqfq00000gr/T/pgf90m7tpKtzA5AiJ.cmod
Unlinking /var/folders/fp/jbwhfbtn4l931pr2gfbmqfq00000gr/T/pgf90S7tpeWJdCWOG.cmdx
Unlinking /var/folders/fp/jbwhfbtn4l931pr2gfbmqfq00000gr/T/pgf90m7tpKWbM30Ux.s
Unlinking /var/folders/fp/jbwhfbtn4l931pr2gfbmqfq00000gr/T/pgf90S7tpe1pmyXSE.ll

Hi Dave,

My Xcode version is 7.2, for what that’s worth.

Jerry