[PD] [PD-announce] timbreID 0.8.1

Christof Ressi christof.ressi at gmx.at
Fri Aug 2 18:30:24 CEST 2019


right, so William could declare only "setup" with __attribute__((visibility("default"))) and in your makefile:

ifeq ($(make-lib-executable),yes)
  ldflags := -fvisibility=hidden
endif

Note that this doesn't work on Windows because MinGW ignores visibility attributes. But there's a solution:

On MinGW, GCC exports all non-static symbols unless at least one symbol is declared with __declspec(dllexport).

For Windows, simply declare the library's "setup" function with __declspec(dllexport).
"make-lib-executable=yes" -> only the "setup" function is exported.
"make-lib-executable=no" -> the file containing the "setup" function won't be compiled, so all other non-static symbols are exported (as usual).

Christof


> Gesendet: Freitag, 02. August 2019 um 17:34 Uhr
> Von: "katja" <katjavetter at gmail.com>
> An: Pd-List <pd-list at lists.iem.at>
> Betreff: Re: [PD] [PD-announce] timbreID 0.8.1
>
> On 8/2/19, Christof Ressi <christof.ressi at gmx.at> wrote:
> > ah, for this to work you'd have to make sure that "timbreID_setup" is not
> > exported... pd-lib-builder exports all non-static functions by default...
>
> ... because gcc exports all non-static functions by default. No need
> to hack Makefile.pdlibbuilder, a library makefile can overrule the
> default with:
>
> ldflags := -fvisibility=hidden
>
>
>
> _______________________________________________
> Pd-list at lists.iem.at mailing list
> UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
>





More information about the Pd-list mailing list