[FriBidi] exports dll symbol methods even if compiled static

Behdad Esfahbod behdad at behdad.org
Wed Sep 5 13:58:01 PDT 2012


On 09/05/2012 02:35 PM, Roger Pack wrote:
> Hello all.
> I noticed that if I cross compile fribdi (for windows) with
> --enable-static --disable-shared, then I cross compile libass the same
> way, then attempt to use it, I get this:
> 
> 
> mingw-w64-i686/i686-w64-mingw32/lib/libass.a(ass_shaper.o): In
> function `ass_shaper_shape’:
> win32/libass-0.10.0/libass/ass_shaper.c:611: undefined reference to
> `_imp__fribidi_get_bidi_types’
> 
> even though it's linking against -lfribdi in the proper order.
> 
> Applying this patch (from the VLC people):
> 
> +++ fribidi/lib/fribidi-common.h 2008-02-04 21:32:25.000000000 +0000
>  @@ -53,11 +53,7 @@
> 
>  /* FRIBIDI_ENTRY is a macro used to declare library entry points. */
>  #ifndef FRIBIDI_ENTRY
>  -# if (defined(WIN32)) || (defined(_WIN32_WCE))
>  -# define FRIBIDI_ENTRY __declspec(dllimport)
>  -# else /* !WIN32 */
>  # define FRIBIDI_ENTRY /* empty */
>  -# endif /* !WIN32 */
>  #endif /* !FRIBIDI_ENTRY */
> 
> seems to make it "now work"
> 
> I suppose...maybe...with static libraries it shouldn't be exported
> this way for windows?

I'm leaning towards removing all those lines and just stick a fribidi.def file
somewhere, like I do with my other, newer, projects.

Will fix it eventually.


behdfad

> Thanks!
> -roger-


More information about the fribidi mailing list