Opened 8 years ago

Closed 5 years ago

#40713 closed defect (wontfix)

llvm-gcc42: libgomp.spec: No such file or directory

Reported by: simon4nine@… Owned by: jeremyhu (Jeremy Huddleston Sequoia)
Priority: Normal Milestone:
Component: ports Version: 2.2.0
Keywords: Cc: simon4nine@…, eliuhe@…, skymoo (Adam Mercer), larryv (Lawrence Velázquez)
Port: llvm-gcc42

Description

Hi,

I am trying to install lscsoft-deps using

sudo port install lscsoft-deps

and it seems to fail when trying to install py27-healpy. The full output is:

--->  Computing dependencies for lscsoft-deps
--->  Dependencies to be installed: py27-healpy py27-m2crypto py27-matplotlib-basemap geos py27-dap py27-httplib2 py27-pyrxp py27-pyxmpp py27-dnspython py27-libxml2
--->  Building py27-healpy
Error: org.macports.build for port py27-healpy returned: command execution failed
Error: Failed to install py27-healpy
Please see the log file for port py27-healpy for details:
    /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_python_py-healpy/py27-healpy/main.log
Error: The following dependencies were not installed: py27-healpy py27-m2crypto py27-matplotlib-basemap geos py27-dap py27-httplib2 py27-pyrxp py27-pyxmpp py27-dnspython py27-libxml2
To report a bug, follow the instructions in the guide:
    http://guide.macports.org/#project.tickets

Please let me know if there is any more information I should provide. I have also attached the .log file as that may be useful.

Thanks in advance! Simon

Attachments (1)

main.log (6.4 KB) - added by simon4nine@… 8 years ago.
Log file

Download all attachments as: .zip

Change History (18)

Changed 8 years ago by simon4nine@…

Attachment: main.log added

Log file

comment:1 Changed 8 years ago by ryandesign (Ryan Schmidt)

Cc: simon4nine@… removed
Keywords: py27-healpy healpy lscsoft-deps removed
Owner: changed from macports-tickets@… to aronnax@…
Port: py27-healpy added; lscsoft-deps removed
Summary: [lscsoft-deps][Failed to install py27-healpy]py27-healpy: libgomp.spec: No such file or directory

comment:2 in reply to:  1 Changed 8 years ago by simon4nine@…

Replying to ryandesign@…:

Please clean and try again.

I have tried cleaning and trying again to no avail.

comment:3 Changed 8 years ago by lpsinger (Leo Singer)

Owner: changed from aronnax@… to erickt@…
Port: llvm-gcc42 added; py27-healpy removed
Summary: py27-healpy: libgomp.spec: No such file or directoryllvm-gcc42: libgomp.spec: No such file or directory

This is a bug in llvm-gcc42, for which OpenMP support is now broken. Consider the following test program:

/* test.c */
int main(int argc, char **argv)
{
    int i;
    #pragma omp parallel for
    for (i = 0; i < 100; i ++)
        ;
    return 0;
}

This fails to build with the following error message:

$ llvm-gcc-4.2 -fopenmp test.c
i686-apple-darwin12-llvm-gcc-4.2: libgomp.spec: No such file or directory

comment:4 Changed 8 years ago by lpsinger (Leo Singer)

I'm trying to have py27-healpy blacklist macports-llvm-gcc-4.2 as a temporary workaround, but the following does not work:

compiler.blacklist *clang* macports-llvm-gcc-4.2

Why not?

comment:5 in reply to:  4 ; Changed 8 years ago by cooljeanius (Eric Gallager)

Replying to aronnax@…:

I'm trying to have py27-healpy blacklist macports-llvm-gcc-4.2 as a temporary workaround, but the following does not work:

compiler.blacklist *clang* macports-llvm-gcc-4.2

Why not?

Try doing

compiler.blacklist *clang* *llvm-gcc-4.2

instead. If that still fails, you can try specifying a good compiler with compiler.fallback-append.

comment:6 Changed 8 years ago by simon4nine@…

Cc: simon4nine@… added

Cc Me!

comment:7 in reply to:  5 Changed 8 years ago by lpsinger (Leo Singer)

Replying to egall@…:

Replying to aronnax@…:

I'm trying to have py27-healpy blacklist macports-llvm-gcc-4.2 as a temporary workaround, but the following does not work:

compiler.blacklist *clang* macports-llvm-gcc-4.2

Why not?

Try doing

compiler.blacklist *clang* *llvm-gcc-4.2

instead. If that still fails, you can try specifying a good compiler with compiler.fallback-append.

But Apple's llvm-gcc is not a problem. I only want to blacklist the Macports llvm-gcc.

comment:8 Changed 8 years ago by lpsinger (Leo Singer)

I'm no expert in the directory structure of GCC, but the directory /opt/local/lib/gcc45 provided by port gcc45 contains many files, including:

$ ls /opt/local/lib/gcc45/*.spec
/opt/local/lib/gcc45/libgcj.spec  /opt/local/lib/gcc45/libgomp.spec

The directory /opt/local/lib/gcc47 is populated in a similar way. However, the directory /opt/local/lib/llvm-gcc42 is almost empty:

$ ls /opt/local/lib/llvm-gcc42/
gcc

Why is that?

comment:9 Changed 8 years ago by lpsinger (Leo Singer)

I notice that gcc45 and relatives have a section like the following in their post-destroot phase, that create symlinks to files provided by libgcc:

    foreach dylib {libgcc_ext.10.4.dylib libgcc_ext.10.5.dylib libgcc_s.1.dylib libgfortran.3.dylib libstdc++.6.dylib libobjc-gnu.2.dylib libgomp.1.dylib libssp.0.dylib} {
        # Different OS versions (eg: Leopard) or architectures (eg: PPC) don't produce all the dylibs
        # https://trac.macports.org/ticket/40098
        # https://trac.macports.org/ticket/40100
        if {[file exists ${destroot}${prefix}/lib/${name}/${dylib}]} {
            delete ${destroot}${prefix}/lib/${name}/${dylib}
            ln -s ${prefix}/lib/libgcc/${dylib} ${destroot}${prefix}/lib/${name}/${dylib}
        }

        if {[variant_isset universal]} {
            foreach archdir [glob ${destroot}${prefix}/lib/${name}/*/] {
                if {[file exists ${archdir}/${dylib}]} {
                    delete ${archdir}/${dylib}
                    ln -s ${prefix}/lib/libgcc/${dylib} ${archdir}/${dylib}
                }
            }
        }
    }

This is what is lacking in llvm-gcc42.

comment:10 Changed 8 years ago by skymoo (Adam Mercer)

Cc: eliuhe@… ram@… added

comment:11 Changed 8 years ago by eliuhe@…

Dear macport experts:

Who is in charge of pushing patches to fix this problem? What will be the expected timeline to get access to a de-bugged version of lscsoft-deps?

Thanks.

comment:12 Changed 8 years ago by lpsinger (Leo Singer)

For py-healpy, I implemented the temporary workaround of blacklisting *-gcc-4.2. See r112423.

comment:13 in reply to:  12 Changed 8 years ago by eliuhe@…

Replying to aronnax@…:

For py-healpy, I implemented the temporary workaround of blacklisting *-gcc-4.2. See r112423.

I tried that and it worked! I have now installed all the dependencies to make lscsoft-deps work,

Thanks a lot.

comment:14 in reply to:  9 Changed 8 years ago by lpsinger (Leo Singer)

Replying to aronnax@…:

I notice that gcc45 and relatives have a section like the following in their post-destroot phase, that create symlinks to files provided by libgcc:

    ...

This is what is lacking in llvm-gcc42.

Adding this section, verbatim, to the llvm-gcc42 port didn't do anything.

Building with port -vks install llvm-gcc42, I see that the the OpenMP-related files are getting built:

ls /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_lang_llvm-gcc42/llvm-gcc42/work/objroot/dst-x86_64-i686/opt/local/i686-apple-darwin12/lib/
libgomp.1.0.0.dylib libgomp.a           libgomp.la          libiberty.a
libgomp.1.dylib     libgomp.dylib       libgomp.spec        x86_64

But these files are not copied into the destroot. What next?

comment:15 Changed 7 years ago by mf2k (Frank Schima)

Owner: changed from erickt@… to jeremyhu@…

Assigning to current maintainer. See #44735.

comment:16 Changed 6 years ago by larryv (Lawrence Velázquez)

Cc: larryv@… added

Cc Me!

comment:17 Changed 5 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Resolution: wontfix
Status: newclosed

This port needs to be retired at some point. We shouldn't have a need for this old compiler any more.

wontfix.

Note: See TracTickets for help on using tickets.