www.delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/1999/06/25/14:57:12

Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm
Sender: cygwin-owner AT sourceware DOT cygnus DOT com
Delivered-To: mailing list cygwin AT sourceware DOT cygnus DOT com
From: "Robert O. Morris" <Robert DOT O DOT Morris AT jpl DOT nasa DOT gov>
To: <cygwin AT sourceware DOT cygnus DOT com>
Cc: "Elaine Dobinson" <Elaine DOT Dobinson AT jpl DOT nasa DOT gov>,
"Distributed Oceanographic Data Server" <dods-tech AT unidata DOT ucar DOT edu>,
"Robert Morris" <Robert DOT O DOT Morris AT jpl DOT nasa DOT gov>
Subject: Loading cygwin dll's from non-cygwin applications (i.e., matlab)
Date: Fri, 25 Jun 1999 11:53:44 -0700
Message-ID: <000201bebf3c$0d3d0b80$35a84e89@jpl.nasa.gov>
MIME-Version: 1.0
X-Priority: 3 (Normal)
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook 8.5, Build 4.71.2173.0
Importance: Normal
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2314.1300

------=_NextPart_000_0003_01BEBF01.60DE3380
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit


Dear Cygwin Mailing List Participants:

Has anybody got _cygwin_ dynamic link libraries to execute
from within matlab (or any other non-cygwin application) ?

I've pretty much reviewed this mailing list to exhaustion
regarding getting a cygwin dll to run from matlab (i.e., a
"non-cygwin application").

It looked like a solution was in progress, but the conversation
stopped sometime in December.  I couldn't tell for sure
whether the conversation stopped because everybody gave up
or because a solution presented itself but didn't make
it to the mailing list (or anywhere else I could find).  I'm
guessing everybody gave up and pursued different avenues but
I really need to confirm this.  If this is the case, is there
any upcoming work that might solve the problem ?  Is it on
anybody's todo list ?

I saw the "--entry cygwin-noncygwin_dll_entry AT 12" which
made me think there was a solution - but to no avail - that
doesn't work.  I parred the code I stick into the dll down
to "main(){}", but no - it still doesn't run.  Matlab strips
its dll's of symbols, so debugging via gdb isn't going anywhere
I believe.  Maybe matlab can help me here - but I see nothing
regarding this in the technical archives on their web sites.

I used the information for mexing using cygwin from
http://www.physiol.ox.ac.uk/~mb3/gnumex20.html.  However,
those .bat's and mex.opts files, etc assume mingw32 (or whatever
the proper term for that is) and I changed that to use cygwin
with a small change to the .opts file.  Out of those scripts
I get my object file that I then feed into dlltool using
(among others) the cygwin_non_cygwin_dll_entry AT 12 entry point
provided for non-cygwin apps to enter the dll code.  The
above-mentioned url says you probably can't do what I'm trying
to do (I think "dangerous" was the term used) - but I'm forced
to try anyway.

My flags to dlltool match those provide by the java-ini example
provided by (excuse me if I'm wrong) Mumhit Kahn where he
explains how to build/use cygwin-compatible dynamic link libraries and the
flags used are pretty much exactly what is in the attached makefile
from that example.  I also used dlltool to create libraries (*.a's)
that, in-turn, call the matlab .dll's.  However, this isn't relevant for
the case where I stipped my code to just "main(){}".

Here's how I build exactly (/home/matlab is a cygwin link to //D/Matlabr11
aka d:\matlabr11 on my machine and loaddods.c is just "main(){}" at this
point)
----------------------------------------------------------------------------
--
BASH.EXE-2.02$ make loaddods
/home/matlab/bin/cmex.bat -c -g -DARCH_32BIT  -DHAVE_CONFIG_H -DUSE_LIBGXX_I
NLIN
ES -I. -I../../include -I/home/matlab/extern/include  -I/home/rmorris/data/b
uild
/DODS/packages-2.17/include -I/home/rmorris/data/build/DODS/packages-2.17/in
clud
e/w3c -I/usr/local/include loaddods.c
rm -rf loaddods.o
mv loaddods.obj loaddods.o
dllwrap --add-stdcall-alias -o loaddods.dll
loaddods.o -Wl,--entry,__cygwin_nonc
ygwin_dll_entry AT 12
Warning: no export definition file provided
dllwrap will create one, but may not be what you want
BASH.EXE-2.02$
----------------------------------------------------------------------------
---

Then I run this "loaddods.dll" from within matlab by cd'ng to the
appropriate
directory and

>> loaddods

The response by matlab is in the attached corel.jpg file.  That is,
the application crashes.

Porting the code to use mingw32 requires that each thing
I link with must also be ported (I believe) and it links
with a great deal - so this would be a very, very bad
time-consuming option (might as well have started out this
port of mine as a true "port", not one using UNIX emulation
via cygwin).  I must pursue getting it to work via the
cygwin unix emulation layer or choke and die trying :)

Can you shed light on my plight ?

Thank You !

Rob Morris
Jet Propulsion Laboratory













------=_NextPart_000_0003_01BEBF01.60DE3380
Content-Type: application/octet-stream;
	name="Makefile.nocyg"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
	filename="Makefile.nocyg"

#
# Sample makefile to create Java JNI with Cygwin b20.1 tools, but using
# Mingw runtime.=20
#=20
# See Makefile.cyg if you want to use -mno-cygwin and build a Cygwin =
JNI.
#
# Things you may need to change:
#   JDK_ROOT     -- location where you installed JDK
#   MINGW_EXTRA  -- location where you installed mingw-extra package.
#

CC =3D gcc=20
CXX =3D c++

DEBUG =3D -g -Wall -O2
CXXFLAGS =3D $(DEBUG) -mno-cygwin
CFLAGS =3D $(DEBUG) -mno-cygwin
CPPFLAGS =3D -I. -I$(MINGW_INCDIR) -I$(JDK_ROOT)/include \
	   -I$(JDK_ROOT)/include/win32

MINGW_EXTRA =3D c:/mingw-extra
MINGW_INCDIR =3D $(MINGW_EXTRA)/include
MINGW_LIBDIR =3D $(MINGW_EXTRA)/lib

JDK_ROOT =3D c:/jdk1.1.7A

AS =3D as
DLLTOOL =3D dlltool
DLLWRAP =3D dllwrap

#
# Various targets to build.
#
DLL_NAME =3D hello.dll
DLL_EXP_DEF =3D hello.def

all: $(DLL_NAME)

#
# DLL related variables. These are used when building the DLL. See =
later.
#

# Some tools require special CPP macros when building a DLL (eg., _DLL =
etc).
# Here we don't need anything.

# DLL_CFLAGS =3D -DBUILDING_DLL=3D1 -D_DLL=3D1=20
DLL_CFLAGS =3D=20

# The default entry point defined by dllwrap is __cygwin_dll_entry AT 12=20
# defined in libcygwin.a, but that's only appropriate for Cygwin apps,
# but since Java is a MSVC app, we need to provide a different entry
# point. Note the leading underscore and the trailing @12.
# The -s flag strips the DLL to shrink the size.

DLL_LDFLAGS =3D -L$(MINGW_LIBDIR) -s -mno-cygwin

# any extra libraries that your DLL may depend on.
DLL_LDLIBS =3D=20

DLL_SRCS  =3D HelloWorldImp.cc
DLL_OBJS  =3D $(DLL_SRCS:.cc=3D.o)
DLL_OBJS :=3D $(DLL_OBJS:.c=3D.o)

###
#
# Making DLL
#
###

DLLWRAP_FLAGS =3D --output-def $(DLL_EXP_DEF) \
	--add-stdcall-alias \
	--driver-name $(CC) \
	-mwindows --target=3Di386-mingw32 \
	$(IMAGE_BASE)=20

$(DLL_NAME): $(DLL_OBJS)
	$(DLLWRAP) $(DLLWRAP_FLAGS) -o $(DLL_NAME) \
	    $(DLL_OBJS) $(DLL_LDFLAGS) $(DLL_LDLIBS)

#
# dependencies.
#

#
# default rules for building DLL objects. Note that client programs =
(ie.,
# the ones that *use* the DLL) have to be compiled without the =
DLL_CFLAGS
# flags.
#
.cc.o:
	$(CXX) -c $(DLL_CFLAGS) $(CPPFLAGS) $(CXXFLAGS) -o $@ $<
.c.o:
	$(CC) -c $(DLL_CFLAGS) $(CPPFLAGS) $(CFLAGS) -o $@ $<

# Note that we omit the $(DLL_CFLAGS) for client programs.
usedll.o: %o: %c
	$(CC) -c $(CPPFLAGS) $(CFLAGS) -o $@ $<

clean:
	-rm -f $(OBJS) $(DLL_OBJS) $(DLL_NAME) $(DLL_EXP_LIB) $(DLL_EXP_DEF) =
$(TESTPROGS)


------=_NextPart_000_0003_01BEBF01.60DE3380
Content-Type: image/jpeg;
	name="corel.jpg"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename="corel.jpg"

/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsK
CwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQU
FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCABjAY4DASIA
AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA
AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3
ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm
p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA
AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx
BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK
U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3
uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD6oooq
C+vrfTLKe8vJ4rW0t42lmnmcIkaKMszMeAAASSelA0m3ZE9FfNHj39sJYLqa08GaXDfwhF2atqfm
RpvzlgLfarsuPlyzoc5OCAC3J6b+2D41t72OTUNK0K/tBnfb20U1tI/BxiQySBcHB+4c4xxnI8Wp
nOBpz5HU18k2vvP03CeGvFOMwyxVPCNRaulKUYyel/hbT++x9h0V598KfjZoHxWtRFaObLXIoRLd
6VNnfFztJRiAJUzj5l6B03BC22vQa9anUhWip03dM/PsZgsTl9eWFxdNwqR0aas1/X4hRWf4g1S4
0bSJ7y10q71ueLbtsbFoVmlywB2maSNOASTuYcA4ycA8f4U+MVn4o0Xwjqj6Fq2j2/im5EGmLf8A
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
LtdSzQtJGeUbe8BdWKzRmNpgD037Ton/AED7/wD8Dk/+M0fadE/6B9//AOByf/Ga5Lwh4ntfGfhr
T9bso5ora8j8xEnADAdOCpKuvHDozI4wyMysrHYoA5LwR45fxnr/AI6txaLZ2eh66dLtU375GjFp
bSlnbABYvM/RQAu0ckFj1teVfA7/AJGL4t/9jhJ/6QWVeq0AFFFFABRRRQAUUUUAFFFFABRRRQAU
UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFACjq
K0/FZH/CUavz/wAvk3/oZrLrzC7/AGb/AATqF3NdXI8RXFzM5klml8VaozuxOSzE3OSSTkk0Aeja
klzNp91HYzw2960TLBNcRGWNJCDtZkDKWUHBKhlJHGR1ryD4cfBHxF8ONQsXs/EOhTWVvGloIZtN
1G4khtAV3QWz3Gpyi3VgiDCLtJjjLK2xQNP/AIZk8Bf88df/APCo1P8A+SKP+GZPAX/PHX//AAqN
T/8AkigDdtvgx4PtIbuJNOleKeMQxxy31xItkgdXVLMNIfsiq8cTKLfywphiIwY0219b+BPgvxFe
3Nxf2F3Mlx9pL2a6pdR2Ya4hkhndbZZREjuk8251QMWlds7mLVlf8MyeAv8Anjr/AP4VGp//ACRR
/wAMyeAv+eOv/wDhUan/APJFAHSRfCTwnBqNtex6XsnguZbvAuJdksr3D3O6VN22XZPLJLGJAwid
y0YQ1o/8IJoX/CK/8I2bLdorf622aZz9oy/mP5zFt0vmMWMm8t5u9/M3h2zxX/DMngL/AJ46/wD+
FRqf/wAkUf8ADMngL/njr/8A4VGp/wDyRQB6oCAMAijI9RXlf/DMngL/AJ46/wD+FRqf/wAkUf8A
DMngL/njr/8A4VGp/wDyRQAfA7/kYvi3/wBjhJ/6QWVeq1zXgT4daD8NtPvLLQLa4t4by5N5cNdX
s13JJKUSPcZJndvuRoMZwAtdLQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU
UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR
RQAUUUUAf//Z


------=_NextPart_000_0003_01BEBF01.60DE3380
Content-Type: text/plain; charset=us-ascii

--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com
------=_NextPart_000_0003_01BEBF01.60DE3380--

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019