Re: Compiling perl XS module on Mac OSX
Ryan Gerry <[email protected]>
| Newsgroups | gmane.comp.web.html-tidy.devel |
|---|---|
| Message-ID | <[email protected]> |
Charlie, thanks for the assistance. I downloaded the new tidyx.h that you mentioned and redid the process mentioned below. The good news is that when running make, I received fewer warnings from the compiler: g++ -c -I/usr/local/include/tidy -g -pipe -pipe -fno-common -DPERL_DARWIN -no-cpp-precomp -fno-strict-aliasing -I/usr/local/include -Os -DVERSION=\"0.1\" -DXS_VERSION=\"0.1\" "-I/System/Library/Perl/5.8.1/darwin-thread-multi-2level/CORE" tidyperl.cpp In file included from tidyperl.cpp:552: tidyx.h: In member function `void Tidy::Buffer::Attach(void*, unsigned int)': tidyx.h:165: warning: invalid conversion from `void*' to `byte*' Unfortunately, the tests continued to fail as they have in the past. Charles Reitzel wrote: > Hi Ryan, > > On all platforms, you need to replace the C++ wrapper header with the > current one here: http://users.rcn.com/creitzel/tidy/tidyx.h > > Some time ago, TidyLib switched to using ulong instead of uint for > pointer types. This is for compatibility with 64-bit builds. The > newer C++ wrapper follows suit. > > hth, > Charlie > > At 09:38 PM 2/1/2005 -0600, Ryan Gerry wrote: > >> Charles Reitzel's Perl XS module >> (http://users.rcn.com/creitzel/tidy.html#tidyperl) compiles nicely on >> Windows and Linux. It would be great it it would also compile on Mac >> OS X (I am using 10.3). >> >> I have the latest versions of libtidy and Charles Reitzel's XS Perl >> module. libtidy compiled well and is working fine using Andy >> Lester's RANDLIB instructions. Here is what I have done and my results. >> >> On my system the path's are as follows. >> 1) perl Makefile.PL.unix TIDYINCPATH=/usr/local/include/tidy >> TIDYLIBPATH=/usr/local/lib >> >> 2) I edit the Makefile and change this line: >> CC = cc >> to >> CC = g++ >> >> I have added -lstdc++ to the end of the LDDLFLAGS as suggested here >> (http://sourceforge.net/mailarchive/message.php?msg_id=5607682), but >> it does not seem to make a difference. >> >> 3) I run make which finishes but gives me these warnings: >> >> cp Tidy.pm blib/lib/HTML/Tidy.pm >> g++ -c -I/usr/local/include/tidy -g -pipe -pipe -fno-common >> -DPERL_DARWIN -no-cpp-precomp -fno-strict-aliasing >> -I/usr/local/include -Os -DVERSION=\"0.1\" -DXS_VERSION=\"0.1\" >> "-I/System/Library/Perl/5.8.1/darwin-thread-multi-2level/CORE" >> tidyperl.cpp >> In file included from tidyperl.cpp:552: >> tidyx.h: In constructor `Tidy::Source::Source()': >> tidyx.h:83: warning: invalid conversion from `int (*)(unsigned int)' >> to `int >> (*)(long unsigned int)' >> tidyx.h:84: warning: invalid conversion from `void (*)(unsigned int, >> unsigned >> char)' to `void (*)(long unsigned int, unsigned char)' >> tidyx.h:85: warning: invalid conversion from `Bool (*)(unsigned int)' >> to `Bool >> (*)(long unsigned int)' >> tidyx.h: In constructor `Tidy::Sink::Sink()': >> tidyx.h:123: warning: invalid conversion from `void (*)(unsigned int, >> unsigned >> char)' to `void (*)(long unsigned int, unsigned char)' >> tidyx.h: In member function `void Tidy::Buffer::Attach(void*, >> unsigned int)': >> tidyx.h:165: warning: invalid conversion from `void*' to `byte*' >> Running Mkbootstrap for HTML::Tidy () >> chmod 644 Tidy.bs >> rm -f blib/arch/auto/HTML/Tidy/Tidy.bundle >> LD_RUN_PATH="" MACOSX_DEPLOYMENT_TARGET=10.3 cc -bundle -undefined >> dynamic_lookup -L/usr/local/lib -lstdc++ tidyperl.o -o >> blib/arch/auto/HTML/Tidy/Tidy.bundle /usr/local/lib/libtidy.a >> -L/usr/local/lib -ltidy >> chmod 755 blib/arch/auto/HTML/Tidy/Tidy.bundle >> cp Tidy.bs blib/arch/auto/HTML/Tidy/Tidy.bs >> chmod 644 blib/arch/auto/HTML/Tidy/Tidy.bs >> >> 4) I run make test which fails with these results: >> >> PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" >> "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t >> t/basic....dyld: /usr/bin/perl Undefined symbols: >> /Users/ryan/build/tidyperl/blib/arch/auto/HTML/Tidy/Tidy.bundle >> undefined reference to __ZTVN10__cxxabiv117__class_type_infoE >> expected to be defined in a dynamic image >> /Users/ryan/build/tidyperl/blib/arch/auto/HTML/Tidy/Tidy.bundle >> undefined reference to __ZTVN10__cxxabiv120__si_class_type_infoE >> expected to be defined in a dynamic image >> /Users/ryan/build/tidyperl/blib/arch/auto/HTML/Tidy/Tidy.bundle >> undefined reference to __ZTVN10__cxxabiv121__vmi_class_type_infoE >> expected to be defined in a dynamic image >> /Users/ryan/build/tidyperl/blib/arch/auto/HTML/Tidy/Tidy.bundle >> undefined reference to __ZdlPv expected to be defined in a dynamic image >> /Users/ryan/build/tidyperl/blib/arch/auto/HTML/Tidy/Tidy.bundle >> undefined reference to __Znwm expected to be defined in a dynamic image >> /Users/ryan/build/tidyperl/blib/arch/auto/HTML/Tidy/Tidy.bundle >> undefined reference to ___cxa_pure_virtual expected to be defined in >> a dynamic image >> /Users/ryan/build/tidyperl/a dynamic image >> t/basic....dubious >> >> [ dump.t and opt.t fail with the same messages ] >> >> 5) When I have run make install and then tried something like this: >> $ perl -MHTML::Tidy >> I get the same errors as the test. >> >> >> Final Info: >> Perl Version: 5.8.1 >> GCC Version: 3.3 20030304 >> I also have trouble with libtool when compiling older version of >> libtidy. >> >> Any assistance would be much apprecited! >> >> >> >> ------------------------------------------------------- >> This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting >> Tool for open source databases. Create drag-&-drop reports. Save time >> by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. >> Download a FREE copy at http://www.intelliview.com/go/osdn_nl >> _______________________________________________ >> Tidy-develop mailing list >> [email protected] >> https://lists.sourceforge.net/lists/listinfo/tidy-develop > > > ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click