Opened 11 years ago

Last modified 11 years ago

#40979 closed defect

asymptote: fatal error: 'ext/slist' file not found — at Version 15

Reported by: ulrich.klauck@… Owned by: loshea@…
Priority: Normal Milestone:
Component: ports Version:
Keywords: mavericks Cc: michaelbartz@…, papachoco@…, mschamschula@…, dcecchin@…, flx.ms@…, mojca@…
Port: asymptote

Description (last modified by mojca (Mojca Miklavec))

Port does not install. Error message is:

/usr/bin/clang++ -Wall -DHAVE_CONFIG_H -D_FILE_OFFSET_BITS=64 -DUSEGC  -D_THREAD_SAFE -pthread -DFFTWPP_SINGLE_THREAD -I/opt/local/include -pipe -Os -arch x86_64  -I . -I/opt/local/include/gc -I/usr/include/gc -o settings.o -c settings.cc
In file included from picture.cc:10:
In file included from ./picture.h:15:
In file included from ./drawelement.h:19:
In file included from ./prcfile.h:5:
In file included from ./prc/oPRCFile.h:41:
./prc/writePRC.h:29:10: fatal error: 'ext/slist' file not found
#include <ext/slist>
         ^

Change History (18)

Changed 11 years ago by ulrich.klauck@…

Attachment: main.log added

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

Description: modified (diff)
Keywords: mavericks added
Owner: changed from macports-tickets@… to loshea@…
Summary: asymptote @2.16_2 +python27 darwin_13.x86_64asymptote @2.16_2 +python27: fatal error: 'ext/slist' file not found

comment:2 Changed 11 years ago by michaelbartz@…

Cc: michaelbartz@… added

Cc Me!

comment:3 Changed 11 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: papachoco@… added

Has duplicate #41062.

comment:4 Changed 11 years ago by Schamschula (Marius Schamschula)

Cc: mschamschula@… added

Cc Me!

comment:5 Changed 11 years ago by ulrich.klauck@…

Hi guys,

I solved the problem for me by building asymptote from the source. There have been 3 problems:

  • Adding '-stdlib=libstdc++' to the CFLAGS solved the slist.h-problem. In Max OS X Apple obviously moved to the C++11 STL. This can be overriden with the above mentionned CFLAG.
  • The other two problems concern the preprocessor macros HAVE_LIBREADLINE and HAVE_LIBSIGSEGV in config.h. The configure script should be called with the option so that both are not defined. Maybe this holds true only for my particular system configuration. Since I am not well schooled in the structure of config.in files and configure scripts, as a quick (but dirty) solution I simply changed config.h

After applying these changes asymptote builds perfectly.

comment:6 Changed 11 years ago by dcecchin@…

Cc: dcecchin@… added

Cc Me!

comment:7 Changed 11 years ago by Schamschula (Marius Schamschula)

Just added the above mentioned CFLAGS to the Portfile and updated asymptote to version 2.25. Also had to add --disable-offscreen to configure.args as there is an issue with the MESA GLUT.

Changed 11 years ago by Schamschula (Marius Schamschula)

Attachment: Portfile-asymptote.diff added

comment:8 Changed 11 years ago by flx.ms@…

Cc: flx.ms@… added

Cc Me!

Thank you mschamschula! Your patch worked greatly out of the box for me: Asymptote compiled and installed without any errors and also passed some tests, I perforemd. OS X Mavericks 10.9.2 (13C64), Xcode 5.1.1 (5B1008). - Waited in vain for month for this update! (since I upgraded to Mavericks)

@Maintainer: How about creating an official update based on the proposed patch?

Cheers!

Last edited 11 years ago by flx.ms@… (previous) (diff)

comment:9 Changed 11 years ago by mojca (Mojca Miklavec)

Cc: mojca@… added

Cc Me!

Changed 11 years ago by mojca (Mojca Miklavec)

Update asymptote to 2.28 + other patches

comment:10 Changed 11 years ago by mojca (Mojca Miklavec)

I think one can call this maintainer timeout. I'm ready to apply the patch, but the following line is weird:

configure.env       CFLAGS="-stdlib=libstdc++"

I don't have 10.9, so I would like to ask for confirmation that this is still needed. If it's still needed, we need to ask the upstream author for a fix.

comment:11 in reply to:  10 Changed 11 years ago by Schamschula (Marius Schamschula)

Replying to mojca@…:

I think one can call this maintainer timeout. I'm ready to apply the patch, but the following line is weird:

configure.env       CFLAGS="-stdlib=libstdc++"

I don't have 10.9, so I would like to ask for confirmation that this is still needed. If it's still needed, we need to ask the upstream author for a fix.

If you are using Xcode 5.1.x on 10.8 or 10.9 you will have this issue. It is not a problem for 10.7 or below.

comment:12 Changed 11 years ago by mojca (Mojca Miklavec)

I committed the rest in r120000, but I would like to explore if there is another ("proper") way for to fix this stdlib flag.

comment:13 Changed 11 years ago by mojca (Mojca Miklavec)

Can someone explain me why CFLAGS instead of CXXFLAGS?

I don't have 10.9 installed yet, but I'm curious to know whether the following blind fix would help. (Not a proper fix yet, but I want to know whether it works at all.)

  • prc/writePRC.h

    old new  
    2626#include <deque>
    2727#include <list>
    2828#ifdef __GNUC__
    29 #include <ext/slist>
     29#include <forward_list>
    3030#endif
    3131#include <map>
    3232#include <iostream>
    class PRCAttribute : public PRCAttributeEntry 
    225225  std::deque<PRCSingleAttribute> attribute_keys;
    226226};
    227227#ifdef __GNUC__
    228 typedef __gnu_cxx::slist<PRCAttribute> PRCAttributeList;
     228typedef std::forward_list<PRCAttribute> PRCAttributeList;
    229229#else
    230230typedef std::list<PRCAttribute> PRCAttributeList;
    231231#endif

http://stackoverflow.com/questions/19758400/ext-slist-file-not-found-on-os-x-10-9

Last edited 11 years ago by mojca (Mojca Miklavec) (previous) (diff)

comment:14 Changed 11 years ago by mojca (Mojca Miklavec)

A note to myself: a fix might need to include something like the following (but that still won't be the proper solution).

#include <ciso646>

#ifdef _LIBCPP_VERSION
#include <forward_list> // libc++
#else
#include <ext/slist>    // libstdc++
#endif

comment:15 Changed 11 years ago by mojca (Mojca Miklavec)

Description: modified (diff)
Summary: asymptote @2.16_2 +python27: fatal error: 'ext/slist' file not foundasymptote: fatal error: 'ext/slist' file not found
Version: 2.2.1
Note: See TracTickets for help on using tickets.