how to opt -load on cygwin

Hello everyone,

I’m trying to load and run a pass on Cygwin target:
opt -load=mypass.dll -mypass

There is an LLVM example - Hello, however lib/Transforms/Makefile says

No support for plugins on windows targets

and then excludes Hello from build
ifeq ($(HOST_OS), $(filter $(HOST_OS), Cygwin MingW Minix))

PARALLEL_DIRS := $(filter-out Hello, $(PARALLEL_DIRS))

On the other hand, I found old suggestions to use

configure --enable-shared --disable-embed-stdcxx

and then link a pass to LLVM dynamic library, using the following Makefile for the pass:

include $(LEVEL)/Makefile.common

LIBS+=-Lpath-to-LLVM -lcygLLVM-3.4svn

I’m able to build the mypass.dll which is linked against cygLLVM-3.4svn.dll.

However, opt load still fails (has no effect).
Are opt plugins still supported for Cygwin target?

Kind Regards,
Sergey Yakushkin

Hi Sergey,

> However, opt load still fails (has no effect).

you also have to use -hello on the opt command line in order to actually
run the pass.

Ciao, Duncan.

Well, I was using command ‘opt -load mypass.dll -mypass’ with -mypass option enabling the pass.

The actual problem was in my system env, then configure script wasn’t working and build used mix of Win/MinGW/Cygwin tools because of $PATH in wrong order in some cases.