OK to stop using .def files for Windows builds with gcc?



I am getting tired of maintaining the .def files that list entry
points exported by DLLs. Gcc doesn't really need them anyway. If you
don't give it any .def file, it exports all global symbols, just like
Unix compilers/linkers traditionally work. (All the Windows binaries
of GLib, GTK, GIMP etc distributed from www.gimp.org/win32 are built
with gcc.)

The benefits of using .def files are:
- Building with MSVC needs them, so
- you can be sure gcc and MSVC builds produce equivalent DLLs
- Internal functions used by several compilation units in the library
  (which thus can't be static) won't be visible anyway.

But keeping them up-to-date is a pain. When you are told that some
entry point is missing, it's painful to have to tell the user "wait
for the next release." On the other hand, building and releasing
intermediate snapshot binaries is not clean or fun either. There is
always the possibility that some GPL bigot demands an exactly
corresponding source tarball too, and producing such can be really
tiresome on Windows.

Opinions? Hans, are you listening? If I stop maintaining .def files,
will you keep them up-to-date? Don't you have some automatic
header-sniffing script for this?

--tml





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]