Opened 10 years ago

Last modified 5 years ago

#42506 closed defect

sparsehash: configuration error — at Version 5

Reported by: jwhowse4 Owned by: hum@…
Priority: Normal Milestone:
Component: ports Version: 2.2.1
Keywords: Cc: nicos@…
Port: sparsehash

Description (last modified by NicosPavlov)

I am using an Intel Mac Pro running Mac OS 10.8.5 (Mountain Lion) with XCode 5.0.2. When I try to upgrade the port kdevplatform from version 1.5.2 to version 1.6.0 the build fails with the attached error log. Any suggestions for a fix?

Edit: The error log above is symptomatic of configuration errors in sparsehash, where HASH_FUN_H is defined as <tr1/functional> instead of <functional> (see discussion below).

Change History (7)

Changed 10 years ago by jwhowse4

Error log for kdevplatform build

comment:1 Changed 10 years ago by NicosPavlov

The definition of HASH_FUN_H should be in sparseconfig.h, from sparsehash port. It seems surprising that the definition would be wrong, but it is true that in my case it is not <tr1/functional> as it seems from your log, but <functional> only. However, these are also different systems (10.8 vs. 10.9 for me).

I see also that you have Macports installed on a custom location, while sparsehash has a pre-compiled binary, where the configuration may not be correct for your system. Does forcing to install sparsehash from source solves the issue?

sudo port -f uninstall sparsehash
sudo port -s install sparsehash

comment:2 in reply to:  1 Changed 10 years ago by jwhowse4

Replying to nicos@…:

The definition of HASH_FUN_H should be in sparseconfig.h, from sparsehash port. It seems surprising that the definition would be wrong, but it is true that in my case it is not <tr1/functional> as it seems from your log, but <functional> only. However, these are also different systems (10.8 vs. 10.9 for me).

I see also that you have Macports installed on a custom location, while sparsehash has a pre-compiled binary, where the configuration may not be correct for your system. Does forcing to install sparsehash from source solves the issue?

sudo port -f uninstall sparsehash
sudo port -s install sparsehash

I do not see how sparsehash could have a precompiled binary since I install everything from source. However, I uninstalled and reinstalled sparsehash as you suggested. I then deactivated the currently active version of kdevplatform and tried to install the new version. The result was the same as previously. I have attached the new log file in the event details have changed.

Changed 10 years ago by jwhowse4

Attachment: kdevplatform_main_new.log added

New error file for kdevplatform

comment:3 Changed 10 years ago by NicosPavlov

Cc: hum@… added

Well, in this case, I strongly suspect that there is an issue in sparsehash's portfile, since internal symbols seem incorrect (cc'ed the maintainer), as to my understanding, HASH_FUN_H, defined as <tr1/functional> in your log should be <functional>.

In the meantime, that's an ugly workaround, which would also be overridden with updates of sparsehash, but redefining HASH_FUN_H in the file ${prefix}/include/sparsehash/internal/sparseconfig.h should solve this issue.

comment:4 in reply to:  3 Changed 10 years ago by jwhowse4

Replying to nicos@…:

Well, in this case, I strongly suspect that there is an issue in sparsehash's portfile, since internal symbols seem incorrect (cc'ed the maintainer), as to my understanding, HASH_FUN_H, defined as <tr1/functional> in your log should be <functional>.

In the meantime, that's an ugly workaround, which would also be overridden with updates of sparsehash, but redefining HASH_FUN_H in the file ${prefix}/include/sparsehash/internal/sparseconfig.h should solve this issue.

While I agree this is an ugly hack, it does work for me. By the way I also had to redefine HASH_NAMESPACE to std. The question in my mind is why these two variable were not properly defined on my system in the first place.

comment:5 Changed 10 years ago by NicosPavlov

Cc: hum@… removed
Description: modified (diff)
Owner: changed from macports-tickets@… to hum@…
Port: sparsehash added; kdevplatform removed
Summary: kdevplatform build failuresparsehash: configuration error

Thanks for the feedback. This confirms that the issue is located in the configuration of sparsehash, and that the build issue of kdevplatform is only a symptom. I changed the description accordingly, and assigned the ticket to the maintainer of sparsehash. I may have a look if I find the time, but not being familiar with the details of sparsehash, I may not be very efficient at solving the issue.

Note: See TracTickets for help on using tickets.