Compiling BeBOP Sparse Matrix Converter under Cygwin

68 views
Skip to first unread message

Evgenii Rudnyi

unread,
Jul 20, 2008, 12:26:59 PM7/20/08
to matrixpr...@googlegroups.com

Mark H.

unread,
Jul 21, 2008, 12:00:22 AM7/21/08
to matrixprogramming
On Jul 20, 9:26 am, Evgenii Rudnyi <use...@rudnyi.ru> wrote:
> is available at
>
> http://matrixprogramming.com/Tools/BeBOP.html

I'm the author of the BeBOP Sparse Matrix Converter :-)

First I'd like to thank you for taking the time to build the package
and document your experiences. You've also taken the time to
investigate and (if possible) fix any problems that you encountered,
which is very helpful for me, especially since I don't have access to
a Windows machine on which to test the Cygwin builds. (I rely on
users like you for those tests, so many thanks!)

You and the other readers here should know that a few days ago, I
released a new version of the code. You can download the (three)
tarballs at

http://bebop.cs.berkeley.edu/smc/

In particular, the READMEs and the updated website above have
installation instructions that would fix the problems you reported
with complex.h and NaN. These are Cygwin-specific problems (they
probably relate to Cygwin's lack of full support for various C99
features). I just now uploaded new versions of the packages that
hopefully address these issues.

I have some comments on your above post:

1. What were those -fPIC errors that you say could be "safely
ignored"? Could you post the text of those errors so that I can work
on making them go away? (Any error message is a bug for me!)

2. The documentation explains that you should create your own
Makefile.include file by using one of the given Makefile.include.*
files as a template.

3. The dynamic library file suffix does matter because the
sparse_matrix_converter executable uses dynamic libraries
(libbebop_util and libsparse_matrix_converter). This is why setting
LD_LIBRARY_PATH (or the equivalent on Cygwin) is important, and why
you don't need to edit src/Makefile (the only Makefiles you need to
edit are in the bebop_make directory).

4. I've updated the documentation to explain exactly what you can do
to avoid the troubles with complex.h and NaNs. You should only need
to edit bebop_make/options and change two options in that file, which
are documented in the file itself. You won't need to edit any other
Makefiles except those in the bebop_make directory.

5. Regarding the trouble you had reading the particular Harwell-Boeing
file, I'd like to thank you for taking the time to figure out why the
SMC crashed :) The Harwell-Boeing parser is a rather fragile piece of
code that I inherited from someone else. I have a lovely new version
of the Harwell-Boeing parser ready which should address these
robustness issues, but I haven't had time to plug it into the SMC
yet. This gives you a good reason to read the next point...

6. Please contact me if you'd like to join the SMC e-mail list for
announcements of new releases (such as the upcoming new release which
will fix the Harwell-Boeing parsing robustness problems).

Best,
Mark Hoemmen
http://www.cs.berkeley.edu/~mhoemmen/

Evgenii Rudnyi

unread,
Jul 25, 2008, 3:58:58 PM7/25/08
to matrixpr...@googlegroups.com
Hi Mark,

> You and the other readers here should know that a few days ago, I
> released a new version of the code. You can download the (three)
> tarballs at
>
> http://bebop.cs.berkeley.edu/smc/

I have tried the new version. With USE_C99_COMPLEX=0 and USE_ISNAN=0 in
options and DYNAMIC_LIB_EXTENSION=.dll and "FPIC_FLAG =" it goes
smoothly with bebop_util. In sparse_matrix_converter there were problems
to compile DLL. It seems that the reason is that you have specified the
objects files after the libraries. When I have changed in src/Makefile to

$(LIBSMC_DYNAMIC): $(LIBSMCOBJ)
$(LINKER) $(DYLIB_CREATE_FLAG) $(CFLAGS) $(LIBSMCOBJ) $(LIBS)
$(LDFLAGS) -o $(LIBSMC_DYNAMIC)

then it was also okay. I wonder how it worked on other systems without this.

I will send you options and Makefile.include for your references to the
private address.

> 1. What were those -fPIC errors that you say could be "safely
> ignored"? Could you post the text of those errors so that I can work
> on making them go away? (Any error message is a bug for me!)

It was just a warning

$ gcc -c -fPIC test.cpp
test.cpp:1: warning: -fPIC ignored for target (all code is position
independent)

> 3. The dynamic library file suffix does matter because the
> sparse_matrix_converter executable uses dynamic libraries
> (libbebop_util and libsparse_matrix_converter). This is why setting
> LD_LIBRARY_PATH (or the equivalent on Cygwin) is important, and why
> you don't need to edit src/Makefile (the only Makefiles you need to
> edit are in the bebop_make directory).

On Windows DLL should be on the path. I do not remember exactly but I
guess that Cygwin just follows that.

Best wishes,

Evgenii

Reply all
Reply to author
Forward
0 new messages