Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Re: $(LD_OUT) can't have a space after it for MS linking. #1056

Closed
p6rt opened this issue Jun 12, 2009 · 11 comments
Closed

Re: $(LD_OUT) can't have a space after it for MS linking. #1056

p6rt opened this issue Jun 12, 2009 · 11 comments

Comments

@p6rt
Copy link

p6rt commented Jun 12, 2009

Migrated from rt.perl.org#66558 (status was 'resolved')

Searchable as RT66558$

@p6rt
Copy link
Author

p6rt commented Jun 12, 2009

From @doughera88

In the 'ins' branch, build/Makefile.in looks like it's heading down the
same wrong road as parrot. See parrot's TT #​700 for more details and a
patch for parrot. I'd suggest a similar approach for rakudo.

The problem is that while MS forbids a space, Solaris 8 requires one.
You can't win in the Makefile. 'make' is not a reliable textual
susbtitution tool when leading or trailing blanks are involved.

--
  Andy Dougherty doughera@​lafayette.edu

@p6rt
Copy link
Author

p6rt commented Jun 13, 2009

From @pmichaud

On Fri, Jun 12, 2009 at 11​:36​:31AM -0700, Andy Dougherty wrote​:

In the 'ins' branch, build/Makefile.in looks like it's heading down the
same wrong road as parrot. See parrot's TT #​700 for more details and a
patch for parrot. I'd suggest a similar approach for rakudo.

Rakudo simply uses parrot_config to get most of its build information,
so it seems our options at present are (1) head down the same wrong
road as parrot until parrot cleans things up, or (2) implement our
our Configure subsystem that is independent of Parrot.

#​2 doesn't seem all that enticing to me and seems like it will result
in a lot of duplication of effort and many places for things
to get "out of sync" between the two. So, I'm hoping that someone
will soon clean up Parrot's configuration system (especially
parrot_config) so that Rakudo can then "head down a similar right
road as Parrot".

Pm

@p6rt
Copy link
Author

p6rt commented Jun 13, 2009

The RT System itself - Status changed from 'new' to 'open'

@p6rt
Copy link
Author

p6rt commented Jun 14, 2009

From @doughera88

In the 'ins' branch, build/Makefile.in looks like it's heading down the
same wrong road as parrot. See parrot's TT #​700 for more details and a
patch for parrot. I'd suggest a similar approach for rakudo.

The problem is that while MS forbids a space, Solaris 8 requires one.
You can't win in the Makefile. 'make' is not a reliable textual
susbtitution tool when leading or trailing blanks are involved.

This patch implements the "similar aproach". I can't test this because
parrot no longer builds for me on any of my usual test platforms, but it
looks about right.

Inline Patch
diff --git a/build/Makefile.in b/build/Makefile.in
index 16b23c2..afa7e0a 100644
--- a/build/Makefile.in
+++ b/build/Makefile.in
@@ -10,11 +10,9 @@ PARROT_INCLUDE_DIR = @includedir@$(PARROT_VERSION)
 PARROT_LIB_DIR     = @libdir@$(PARROT_VERSION)
 PARROT_SRC_DIR     = @srcdir@$(PARROT_VERSION)
 
-CC            = @cc@ -c
-CC_OUT        = @cc_o_out@
+CC            = @cc@
 CFLAGS        = @ccflags@ @cc_shared@ @cc_debug@ @ccwarn@ @cc_hasjit@ @cg_flag@ @gc_flag@
 LD            = @ld@
-LD_OUT        = @ld_out@
 LDFLAGS       = @ldflags@ @ld_debug@
 LD_LOAD_FLAGS = @ld_load_flags@
 LIBPARROT     = @inst_libparrot_ldflags@
@@ -367,9 +365,9 @@ $(DYNPMC): $(PMC_SOURCES)
 	$(PMC2C) --dump $(PMC2C_INCLUDES) $(PMC_SOURCES)
 	$(PMC2C) --c $(PMC2C_INCLUDES) $(PMC_SOURCES)
 	$(PMC2C) --library $(GROUP) --c $(PMC_SOURCES)
-	$(CC) $(CC_OUT) $(GROUP)$(O) -I$(PMC_DIR) $(CINCLUDES) $(CFLAGS) $(GROUP).c
-	cd $(PMC_DIR) && $(CC) $(CINCLUDES) $(CFLAGS) *.c
-	$(LD) $(LD_OUT)$(DYNPMC) $(GROUP)$(O) src/pmc/*$(O) $(LINKARGS)
+	$(CC) -c @cc_o_out@$(GROUP)$(O) -I$(PMC_DIR) $(CINCLUDES) $(CFLAGS) $(GROUP).c
+	cd $(PMC_DIR) && $(CC) -c $(CINCLUDES) $(CFLAGS) *.c
+	$(LD) @ld_out@$(DYNPMC) $(GROUP)$(O) src/pmc/*$(O) $(LINKARGS)
 
 DYNOPS_TARGETS = \
 	$(OPS_DIR)/$(OPS)$(LOAD_EXT) \
@@ -382,22 +380,22 @@ $(DYNOPS): $(DYNOPS_TARGETS)
 
 $(OPS_DIR)/$(OPS)$(LOAD_EXT): $(OPS_DIR)/$(OPS_SOURCE)
 	cd $(OPS_DIR) && $(OPS2C) C --dynamic $(OPS_SOURCE)
-	cd $(OPS_DIR) && $(CC) $(CC_OUT) $(OPS)$(O) $(CINCLUDES) $(CFLAGS) $(OPS).c
-	cd $(OPS_DIR) && $(LD) $(LD_OUT)$(OPS)$(LOAD_EXT) $(OPS)$(O) $(LINKARGS)
+	cd $(OPS_DIR) && $(CC) -c @cc_o_out@$(OPS)$(O) $(CINCLUDES) $(CFLAGS) $(OPS).c
+	cd $(OPS_DIR) && $(LD) @ld_out@$(OPS)$(LOAD_EXT) $(OPS)$(O) $(LINKARGS)
 
 $(OPS_DIR)/$(OPS)_switch$(LOAD_EXT): $(OPS_DIR)/$(OPS_SOURCE)
 	cd $(OPS_DIR) && $(OPS2C) CSwitch --dynamic $(OPS_SOURCE)
-	cd $(OPS_DIR) && $(CC) $(CC_OUT) $(OPS)_switch$(O) $(CINCLUDES) $(CFLAGS) $(OPS)_switch.c
-	cd $(OPS_DIR) && $(LD) $(LD_OUT)$(OPS)_switch$(LOAD_EXT) $(OPS)_switch$(O) $(LINKARGS)
+	cd $(OPS_DIR) && $(CC) -c @cc_o_out@$(OPS)_switch$(O) $(CINCLUDES) $(CFLAGS) $(OPS)_switch.c
+	cd $(OPS_DIR) && $(LD) @ld_out@$(OPS)_switch$(LOAD_EXT) $(OPS)_switch$(O) $(LINKARGS)
 
 $(OPS_DIR)/$(OPS)_cg$(LOAD_EXT): $(OPS_DIR)/$(OPS_SOURCE)
 	cd $(OPS_DIR) && $(OPS2C) CGoto --dynamic $(OPS_SOURCE)
-	cd $(OPS_DIR) && $(CC) $(CC_OUT) $(OPS)_cg$(O) $(CINCLUDES) $(CFLAGS) $(OPS)_cg.c
-	cd $(OPS_DIR) && $(LD) $(LD_OUT)$(OPS)_cg$(LOAD_EXT) $(OPS)_cg$(O) $(LINKARGS)
+	cd $(OPS_DIR) && $(CC) -c @cc_o_out@$(OPS)_cg$(O) $(CINCLUDES) $(CFLAGS) $(OPS)_cg.c
+	cd $(OPS_DIR) && $(LD) @ld_out@$(OPS)_cg$(LOAD_EXT) $(OPS)_cg$(O) $(LINKARGS)
 
 $(OPS_DIR)/$(OPS)_cgp$(LOAD_EXT): $(OPS_DIR)/$(OPS_SOURCE)
 	cd $(OPS_DIR) && $(OPS2C) CGP --dynamic $(OPS_SOURCE)
-	cd $(OPS_DIR) && $(CC) $(CC_OUT) $(OPS)_cgp$(O) $(CINCLUDES) $(CFLAGS) $(OPS)_cgp.c
-	cd $(OPS_DIR) && $(LD) $(LD_OUT)$(OPS)_cgp$(LOAD_EXT) $(OPS)_cgp$(O) $(LINKARGS)
+	cd $(OPS_DIR) && $(CC) -c @cc_o_out@$(OPS)_cgp$(O) $(CINCLUDES) $(CFLAGS) $(OPS)_cgp.c
+	cd $(OPS_DIR) && $(LD) @ld_out@$(OPS)_cgp$(LOAD_EXT) $(OPS)_cgp$(O) $(LINKARGS)
 
 
-- 
    Andy Dougherty		doughera@lafayette.edu

@p6rt
Copy link
Author

p6rt commented Jul 25, 2009

From @pmichaud

On Fri Jun 12 11​:36​:31 2009, doughera wrote​:

In the 'ins' branch, build/Makefile.in looks like it's heading down the
same wrong road as parrot. See parrot's TT #​700 for more details and a
patch for parrot. I'd suggest a similar approach for rakudo.

The problem is that while MS forbids a space, Solaris 8 requires one.
You can't win in the Makefile. 'make' is not a reliable textual
susbtitution tool when leading or trailing blanks are involved.

I've started a new branch ("ins2") based on a more recent Rakudo and the
latest Parrot release (1.4.0), and incorporated this patch there. Let
me know if it works better on MS and Solaris than what we had before.

Thanks!

Pm

@p6rt
Copy link
Author

p6rt commented Jul 27, 2009

From @doughera88

On Fri, 24 Jul 2009, Patrick R. Michaud via RT wrote​:

On Fri Jun 12 11​:36​:31 2009, doughera wrote​:

In the 'ins' branch, build/Makefile.in looks like it's heading down the
same wrong road as parrot. See parrot's TT #​700 for more details and a
patch for parrot. I'd suggest a similar approach for rakudo.

The problem is that while MS forbids a space, Solaris 8 requires one.
You can't win in the Makefile. 'make' is not a reliable textual
susbtitution tool when leading or trailing blanks are involved.

I've started a new branch ("ins2") based on a more recent Rakudo and the
latest Parrot release (1.4.0), and incorporated this patch there. Let
me know if it works better on MS and Solaris than what we had before.

Yes, I think that fixes the space problem for Solaris, and, as far as I
am concerned, this ticket may be closed.

Unfortunately, I've been unable to test it. Building parrot with Sun's
compiler fails (TT #​652). I was able to build parrot with gcc, but the
rakudo build got stuck on the second step, running nqp.pbc against
src/parser/actions.pm. After 3 and a half hours, it still hadn't produced
any obvious output. The system was swapping like mad, and I had to kill
the process so I could get other work done.

Still, the generated Makefile looks ok to me on Solaris.

--
  Andy Dougherty doughera@​lafayette.edu

@p6rt
Copy link
Author

p6rt commented Jul 29, 2009

From @pmichaud

On Mon, Jul 27, 2009 at 11​:56​:14AM -0700, Andy Dougherty via RT wrote​:

On Fri, 24 Jul 2009, Patrick R. Michaud via RT wrote​:

I've started a new branch ("ins2") based on a more recent Rakudo and the
latest Parrot release (1.4.0), and incorporated this patch there. Let
me know if it works better on MS and Solaris than what we had before.

Yes, I think that fixes the space problem for Solaris, and, as far as I
am concerned, this ticket may be closed.

Unfortunately, I've been unable to test it. Building parrot with Sun's
compiler fails (TT #​652). I was able to build parrot with gcc, but the
rakudo build got stuck on the second step, running nqp.pbc against
src/parser/actions.pm. After 3 and a half hours, it still hadn't produced
any obvious output. The system was swapping like mad, and I had to kill
the process so I could get other work done.

Is Rakudo trunk able to build on Solaris, or is it just the 'ins2'
branch that is giving difficulty?

Pm

@p6rt
Copy link
Author

p6rt commented Jul 29, 2009

From @doughera88

On Wed, 29 Jul 2009, Patrick R. Michaud via RT wrote​:

On Mon, Jul 27, 2009 at 11​:56​:14AM -0700, Andy Dougherty via RT wrote​:

On Fri, 24 Jul 2009, Patrick R. Michaud via RT wrote​:

I've started a new branch ("ins2") based on a more recent Rakudo and the
latest Parrot release (1.4.0), and incorporated this patch there. Let
me know if it works better on MS and Solaris than what we had before.

Yes, I think that fixes the space problem for Solaris, and, as far as I
am concerned, this ticket may be closed.

Unfortunately, I've been unable to test it. Building parrot with Sun's
compiler fails (TT #​652). I was able to build parrot with gcc, but the
rakudo build got stuck on the second step, running nqp.pbc against
src/parser/actions.pm. After 3 and a half hours, it still hadn't produced
any obvious output. The system was swapping like mad, and I had to kill
the process so I could get other work done.

Is Rakudo trunk able to build on Solaris, or is it just the 'ins2'
branch that is giving difficulty?

I don't know for sure, but I'd expect trunk to behave similarly. That
particular system doesn't have a lot of RAM, and rakudo has always been
difficult to build. I don't think it's anything relevant for the ins2
branch.

--
  Andy Dougherty doughera@​lafayette.edu

@p6rt
Copy link
Author

p6rt commented Jul 31, 2009

From @doughera88

The problem on Solaris 8 is fixed in the ins2 branch by

commit 69c123146f851c28fb562ca0b217c01d4610ed26
Author​: pmichaud <pmichaud@​pobox.com>
Date​: Fri Jul 24 21​:58​:07 2009 -0500

  Clean up compiler flags for certain compilers (RT #​66558)
  Patch courtesy Andy Dougherty <doughera@​lafayette.edu> .

@p6rt
Copy link
Author

p6rt commented Jul 31, 2009

From [Unknown Contact. See original ticket]

The problem on Solaris 8 is fixed in the ins2 branch by

commit 69c123146f851c28fb562ca0b217c01d4610ed26
Author​: pmichaud <pmichaud@​pobox.com>
Date​: Fri Jul 24 21​:58​:07 2009 -0500

  Clean up compiler flags for certain compilers (RT #​66558)
  Patch courtesy Andy Dougherty <doughera@​lafayette.edu> .

@p6rt
Copy link
Author

p6rt commented Jul 31, 2009

@doughera88 - Status changed from 'open' to 'resolved'

@p6rt p6rt closed this as completed Jul 31, 2009
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant