Re: [AD] font vtable patch

[ Thread Index | Date Index | More lists.liballeg.org/allegro-developers Archives ]


"Eric Botcazou" <ebotcazou@xxxxxxxxxx> wrote:

> Currently the dll exports all the internal symbols; that's obviously not
the
> best solution because external libraries can hook directly into Allegro
> internals and it's a pain not to break them (I just broke AllegroGL few
days
> ago !).
>
> So Henrik and I are trying to cut down the list of exported symbols before
> the 4.0; the most simple solution is to put all the exported symbols into
> allegro.h, hence my demand.

a separate set of AL_API_* macros will allow us to work gradually towards
completely hiding allegro internals. because of that, and because it cleans
up IMO a rather ugly win32 linking process, i think this is a better
solution than the simpler #ifdef SCAN_EXPORT hack. as an added bonus we can
remove the old-style export definition files for all win32 platforms. i'm
convinced this can be done without breaking binary compatibility between
dlls created with msvc and mingw.

my personal 'todo' list looks like this for the moment:

-#ifdef out WinMain from dll. this only belongs in end-user apps.
-create wrappers for all inline functions... this can be done simply with
some macros in the platform specific headers and in inline.c. i only wonder
what naming conventions i should use. for backwards compatibility the real
inline functions should keep their original names i think... while the
wrappers should have underscore prefixes. but that's a bit funny since the
de-facto standard is the opposite.
-add inlined wrappers for proc_* functions, since many gui programs requires
the entry point address to be constant during compile-time. this might very
well be a problem with mingw, but the workaround will be needed anyway.
-start tagging stuff for export.
-update makefiles. also move the platform define into makefiles to avoid
problem related to mixing development tools resulting in wrong includes.
(for example: running make depend on the msvc build using mingw make)

comments are most welcome, it's better to scream out loud now than after
things are turned upside down. :o) well gotta run, bye for now...

-henrik




Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/