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