Daniel Macks wrote:
> Update of /cvsroot/fink/dists/10.4/unstable/main/finkinfo/gnome
> In directory 
> sc8-pr-cvs5.sourceforge.net:/tmp/cvs-serv18479/10.4/unstable/main/finkinfo/gnome
> 
> Modified Files:
>       libart2.info 
> Removed Files:
>       libart2.patch 
> Log Message:
> New version; remove legacy patch that no longer applies (possibly
> included upstream), remove libtool tweak that is a no-op now.
[]
>  Package: libart2
> -Version: 2.3.17
> +Version: 2.3.18
>  Revision: 1

This version 2.3.18 breaks compilation of scribus. I think it will break 
compilation of any C++ program that uses libart. Here is a small test case:

//file libartbug.c
// compile with
// gcc -I/sw/include/libart-2.0 -L/sw/lib -lart_lgpl_2 libartbug.c
#include <libart_lgpl/art_misc.h>
int main(){
         void * foo = art_new(int, 3);
};

It compiles OK with gcc. If you compile it with g++, you get

% g++ -I/sw/include/libart-2.0 -L/sw/lib -lart_lgpl_2 libartbug.c
/usr/bin/ld: Undefined symbols:
art_alloc(unsigned long)
collect2: ld returned 1 exit status

The bug is in libart_lgpl/art_misc.h. The function declarations

void *art_alloc(size_t size);
void art_free(void *ptr);
void *art_realloc(void *ptr, size_t size);

need to be enclosed in 'extern "C"', just like the later declarations of 
  art_die() etc are.

If someone has contact to the upstream developers, please tell them.

-- 
Martin



-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Fink-devel mailing list
Fink-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/fink-devel

Reply via email to