Ticket #381 (closed bug: fixed)

Opened 6 years ago

Last modified 6 years ago

dynpmc libs missing and minor win32 fixes

Reported by: rurban Owned by:
Priority: blocker Milestone: 1.0
Component: core Version:
Severity: medium Keywords:
Cc: Language:
Patch status: applied Platform: all

Description

Attached patch fixes the new dynpmc and dynoplibs makefiles for win32, though there's still some improvements to be done: better gcc detection e.g. cc=gcc-4 falls through here.

rm *$(O) is too dangerous, think of make clean O=

The libs are missing in LINKARGS, only some unices defer to link unresolved symbols, but's its far better to use the detected libs there also.

Attachments

dynpmc_in.patch Download (0.8 KB) - added by ronaldws 6 years ago.
tt381-dynpmc-make.patch Download (3.9 KB) - added by rurban 6 years ago.

Change History

in reply to: ↑ description ; follow-up: ↓ 2   Changed 6 years ago by ronaldws

Building on my cygwin/Vista system at this time, with your patches applied, gives me the error below:

gcc -o dynlexpad.dll dynlexpad.o -Wl,-L /home/ron/parrot/blib/lib -s -L/usr/local/lib -shared -L/home/ron/parrot -lparrot -lcrypt gcc: /home/ron/parrot/blib/lib: No such file or directory make[1]: *** [dynlexpad.dll] Error 1 make[1]: Leaving directory `/home/ron/parrot/src/dynpmc' make: *** [dynpmc.dummy] Error 2

There doesn't seem to be a blib/lib created under cygwin. The following (probably hacky) workaround patch, applied after your patches, gets me around the problem for now:

--- config/gen/makefiles/dynpmc.in.sav 2009-02-27 15:32:59.498910000 -0500 +++ config/gen/makefiles/dynpmc.in 2009-02-27 15:33:02.712510000 -0500 @@ -24,7 +24,8 @@

BUILD_LIB_DIR := $(BUILD_DIR)@slash@blib@slash@lib PMC2C := $(PERL) $(BUILD_TOOLS_DIR)@slash@… INCLUDES := -I$(BUILD_DIR)@slash@include -I@build_dir@@slash@src@slash@pmc

-#IF(cc==gcc):LINKARGS := -Wl,-L $(BUILD_LIB_DIR) $(LDFLAGS) $(LD_LOAD_FLAGS) $(LIBPARROT) @icu_shared@ @libs@ +#IF(cygwin):LINKARGS := $(LDFLAGS) $(LD_LOAD_FLAGS) $(LIBPARROT) @icu_shared@ @libs@ +#ELSIF(cc==gcc):LINKARGS := -Wl,-L $(BUILD_LIB_DIR) $(LDFLAGS) $(LD_LOAD_FLAGS) $(LIBPARROT) @icu_shared@ @libs@

#ELSE:LINKARGS := $(LDFLAGS) $(LD_LOAD_FLAGS) $(LIBPARROT) @icu_shared@ @libs@

PMC2CD := $(PERL) $(BUILD_TOOLS_DIR)/pmc2c.pl --dump

The resulting parrot seems to pass "make test".

Changed 6 years ago by ronaldws

in reply to: ↑ 1   Changed 6 years ago by ronaldws

Patch in previous reply, garbled by wiki formatting, now attached in dynpmc_in.patch.

Changed 6 years ago by rurban

  Changed 6 years ago by rurban

  • status changed from new to closed
  • resolution set to fixed
  • patch changed from new to applied

fixed with r37041 for win32 (cygwin, mingw, msvc).

Note: See TracTickets for help on using tickets.