MinGW/Cygwin build snags
От | Noah Misch |
---|---|
Тема | MinGW/Cygwin build snags |
Дата | |
Msg-id | 20140608195915.GA572874@tornado.leadboat.com обсуждение исходный текст |
Ответы |
Re: MinGW/Cygwin build snags
|
Список | pgsql-hackers |
First, when I tried to add an Assert() call to a file in src/port, a MinGW-w64 build failed like this: Creating library file: libpostgres.a ../../src/port/libpgport_srv.a(fls_srv.o): In function `fls': /home/nm/src/pg/mingw-postgresql/src/port/fls.c:63: undefined reference to `__imp_assert_enabled' Since src/makefiles/Makefile.win32 does not set BUILDING_DLL for src/port, PGDLLIMPORT is set improperly for code to be linked directly into the backend. Makefile.win32 does set BUILDING_DLL for src/common. (Makefile.cygwin has the same discrepancy, though I haven't checked whether it causes an actual build failure there. The MSVC build system sets BUILDING_DLL for both src/port and src/common files.) This affects any reference to a data symbol from src/port. The fix is straightforward enough: cause Makefile.{win32,cygwin} to treat src/port like src/common. Second, src/template/{win32,cygwin} completely replaces LDFLAGS, so overriding LDFLAGS on the "configure" command line is ineffective. Those scripts should instead add to the existing LDFLAGS, like other templates do for CPPFLAGS. Several other templates completely override CFLAGS; that's undesirable for the same reason. I don't have ready access to those affected configurations, so I'm leaving the CFLAGS damage alone. A fix for the Makefile.win32 half of the original problem appeared as part of a larger patch: http://www.postgresql.org/message-id/flat/86sk8845pl.fsf@ds4.des.no Both of these changes fix bugs, but I plan not to back-patch. Builds that work today won't see any change, and I found no other user reports. -- Noah Misch EnterpriseDB http://www.enterprisedb.com
Вложения
В списке pgsql-hackers по дате отправления: