[GRASS5] dbmi driver

Hi developers,

I just installed grass 5.7 on cygwin and found dbmi drivers don't work
because db_driver_* functions were defined both in
libgrass_dbstubs.dll and each driver.

For example,
db_driver_open_database in libgrass_dbstubs.dll: memory address: 0x5131f0
db_driver_open_database in dbf.exe: memory address: 0x401310

when a user calls the dbf driver, what the driver is supposed to do is
calling 0x401310. However, it calls 0x5131f0 because both the driver
and libgrass_dbmidriver.dll are compiled with libgrass_dbstubs.dll.

dbf driver (dbf.exe) -> db_driver (libgrass_dbmidriver.dll) ->
db_driver_open_database (libgrass_dbmidriver.dll ->
libgrass_dbstubs.dll, not -> dbf.exe)

I'm not sure if i explained correctly, but is this a problem only in cygwin?

Any comment would be helpful.

Thanks,
Huidae Cho

I forgot something. It causes the following error when I run ./tour in
the g51test-12 dataset:

v.db.connect map=multi.....
  dbmi: db_open_database() not implemented
  WARNING: Cannot open database '..../dbf'

Thanks.
Huidae Cho

On Sat, 23 Oct 2004 04:21:29 -0500, Huidae Cho <grass4u@gmail.com> wrote:

Hi developers,

I just installed grass 5.7 on cygwin and found dbmi drivers don't work
because db_driver_* functions were defined both in
libgrass_dbstubs.dll and each driver.

For example,
db_driver_open_database in libgrass_dbstubs.dll: memory address: 0x5131f0
db_driver_open_database in dbf.exe: memory address: 0x401310

when a user calls the dbf driver, what the driver is supposed to do is
calling 0x401310. However, it calls 0x5131f0 because both the driver
and libgrass_dbmidriver.dll are compiled with libgrass_dbstubs.dll.

dbf driver (dbf.exe) -> db_driver (libgrass_dbmidriver.dll) ->
db_driver_open_database (libgrass_dbmidriver.dll ->
libgrass_dbstubs.dll, not -> dbf.exe)

I'm not sure if i explained correctly, but is this a problem only in cygwin?

Any comment would be helpful.

Thanks,
Huidae Cho

I solve the problem by "make clean; make." But I don't why it happened. :frowning:

On Sat, 23 Oct 2004 04:27:42 -0500, Huidae Cho <grass4u@gmail.com> wrote:

I forgot something. It causes the following error when I run ./tour in
the g51test-12 dataset:

v.db.connect map=multi.....
  dbmi: db_open_database() not implemented
  WARNING: Cannot open database '..../dbf'

Thanks.
Huidae Cho

On Sat, 23 Oct 2004 04:21:29 -0500, Huidae Cho <grass4u@gmail.com> wrote:
> Hi developers,
>
> I just installed grass 5.7 on cygwin and found dbmi drivers don't work
> because db_driver_* functions were defined both in
> libgrass_dbstubs.dll and each driver.
>
> For example,
> db_driver_open_database in libgrass_dbstubs.dll: memory address: 0x5131f0
> db_driver_open_database in dbf.exe: memory address: 0x401310
>
> when a user calls the dbf driver, what the driver is supposed to do is
> calling 0x401310. However, it calls 0x5131f0 because both the driver
> and libgrass_dbmidriver.dll are compiled with libgrass_dbstubs.dll.
>
> dbf driver (dbf.exe) -> db_driver (libgrass_dbmidriver.dll) ->
> db_driver_open_database (libgrass_dbmidriver.dll ->
> libgrass_dbstubs.dll, not -> dbf.exe)
>
> I'm not sure if i explained correctly, but is this a problem only in cygwin?
>
> Any comment would be helpful.
>
> Thanks,
> Huidae Cho
>