Apparently the newer GCC versions have changed the DSO linking.

That makes building strategoXT impossible with the new GCC unless the following changes are made to some Makefile’s:

In the strc-core/tools/Makefile.am:

The report-amb.str imports libstratego-sglr thus LDADD must be expanded with $(STRATEGO_SGLR_LIBS).

In the sdf-front/parse/Makefile.am:

The pack-sdf.str file imports alot of libraries for which the variable pack_sdf_LDADD must be expanded with $(STRATEGO_XTC_LIBS) $(STRATEGO_LIB_LIBS) $(STRATEGO_RUNTIME_LIBS) $(ATERM_LIBS)

Also for the sdf-desugar.str and sdf-ensugar.str both sdf_desugar_LDADD with $(STRATEGO_LIB_LIBS) $(STRATEGO_ATERM_LIBS) $(STRATEGO_SGLR_LIBS)

Submitted by André Vieira on 17 July 2012 at 17:01

On 17 July 2012 at 18:03 Lennart Kats commented:

How do those changes affect older gcc versions?


On 18 July 2012 at 10:27 André Vieira commented:

I haven’t tried so I can’t say with certainty. But if the problem was due to the DSO linking then it should work just fine with older gcc versions.

Quoting the link mentioned above “Previously calls to the linker (ld) from gcc would result in dangerous default behaviour where ld would attempt to implicitly satisfy link requirements.”, it seems that older gcc versions made the links implicitly, by default. So actually defining them instead of expecting “default” behaviour shouldn’t be a problem? But it’s well worth a couple of tries and tests before adding it to the baseline obviously.

Log in to post comments