[GRASS-dev] Compile errors - dllmain and fmode - releasebranch_6_4 and develbranch_6

Markus Neteler neteler at osgeo.org
Tue Mar 3 07:52:24 EST 2009


On Tue, Mar 3, 2009 at 3:58 AM, Glynn Clements <glynn at gclements.plus.com> wrote:
>
> Colin Nielsen wrote:
>
>> Lots of compile errors on make on my vista machine (using mingw/msys
>> not osgeo4w). This is the first one, from lib/datetime:
>>
>> gcc -shared -o /usr/local/src/grass-6.4_release/dist.i686-pc-mingw32/lib/libgrass_datetime.6.4.0svn.dll
>> -L/usr/local/src/grass-6.4_release/dist.i686-pc-mingw32/lib
>> -Wl,--export-dynamic,--enable-runtime-pseudo-reloc  -L/usr/local/lib
>> -L/usr/local/pgsql/lib   OBJ.i686-pc-mingw32/between.o
>> OBJ.i686-pc-mingw32/copy.o OBJ.i686-pc-mingw32/same.o
>> OBJ.i686-pc-mingw32/diff.o OBJ.i686-pc-mingw32/error.o
>> OBJ.i686-pc-mingw32/format.o OBJ.i686-pc-mingw32/incr1.o
>> OBJ.i686-pc-mingw32/incr2.o OBJ.i686-pc-mingw32/incr3.o
>> OBJ.i686-pc-mingw32/local.o OBJ.i686-pc-mingw32/misc.o
>> OBJ.i686-pc-mingw32/change.o OBJ.i686-pc-mingw32/scan.o
>> OBJ.i686-pc-mingw32/sign.o OBJ.i686-pc-mingw32/type.o
>> OBJ.i686-pc-mingw32/tz1.o OBJ.i686-pc-mingw32/tz2.o
>> OBJ.i686-pc-mingw32/values.o
>> ../../lib/gis/OBJ.i686-pc-mingw32/dllmain.o && \
>>         (cd /usr/local/src/grass-6.4_release/dist.i686-pc-mingw32/lib;
>> ln -f -s libgrass_datetime.6.4.0svn.dll
>> /usr/local/src/grass-6.4_release/dist.i686-pc-mingw32/lib/libgrass_datetime.dll)
>> gcc.exe: ../../lib/gis/OBJ.i686-pc-mingw32/dllmain.o: No such file or directory
>> make: *** [/usr/local/src/grass-6.4_release/dist.i686-pc-mingw32/lib/libgrass_datetime.6.4.0svn.dll]
>> Error 1
>>
>> and from lib/gis:
>> make: *** No rule to make target
>> `../../lib/gis/OBJ.i686-pc-mingw32/dllmain.o', needed by `default'.
>> Stop.
>>
>> The errors seem to be related to the dllmain and fmode problems from
>> ticket #469 <http://trac.osgeo.org/grass/ticket/469>, but they seem to
>> affect only the versions post-fix. While releasebranch_6_4 and
>> develbranch_6 have make errors, releasebranch_6_3 doesn't have these
>> errors.
>
> It appears that someone committed only half of the fix with r35770.

The fixes were
- 6.4.svn  (r35767, r35769)
- 6.4.0svn (r35768, r35770)

> [Probably because a complete fix doesn't exist; the change implies
> that dllmain.c would be part of lib/gis, but lib/datetime is built
> first.]

What is exactly missing?

To my knowledge, it compiles on MingW for the OSGeo4W compiler as well
as Linux and MacOSX.

> The easiest solution is likely to be to simply revert the change with:
>
>        svn merge -c -35770 .
>
> Unless someone can come up with a real fix, I'll revert r35770 in SVN.

Wait a moment... (also note that r35768 + r35770 are belonging together).

Suggestion:
In include/Make/Shlib.make, change the

ifdef MINGW

test to something which excludes  $(DATETIME_LIBNAME)?
Then it's applied only when not building libgrass_datetime.

?
Marksu


More information about the grass-dev mailing list