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

Install problem from CPAN with 5.26.3/darwin-thread-multi-2level #1428

Closed
veripoolbot opened this issue May 1, 2019 · 3 comments
Closed

Install problem from CPAN with 5.26.3/darwin-thread-multi-2level #1428

veripoolbot opened this issue May 1, 2019 · 3 comments

Comments

@veripoolbot
Copy link
Collaborator

@veripoolbot veripoolbot commented May 1, 2019


Author Name: Jack Langsdorf
Original Redmine Issue: 1428 from https://www.veripool.org

Original Assignee: Jack Langsdorf


Installing Verilog::Netlist or Verilog::Parser (etc) from CPAN fail on my mac (Mojave 10.14, perl 5, version 26, subversion 3 (v5.26.3) built for darwin-thread-multi-2level
Other modules from CPAN do not fail in the same way, I think there is an old Mac workaround in the Verilog module Makefiles that is causing a problem.

The failing message is:
LD_RUN_PATH="/usr/lib" /usr/bin/clang -dynamiclib -lstdc++ -L/System/Library/Perl/5.26.3/darwin-thread-multi-2level/CORE -lperl -lgcc_eh -L/usr/local/lib VFileLine.o VParseLex.o VParse.o VParseBison.o VSymTable.o VAst.o -o ../blib/arch/auto/Verilog/Parser/Parser.bundle Parser_cleaned.o
-lstdc++ \

ld: warning: directory not found for option '-L/System/Library/Perl/5.26.3/darwin-thread-multi-2level/CORE'
ld: library not found for -lperl
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[1]: *** [../blib/arch/auto/Verilog/Parser/Parser.bundle] Error 1
make: *** [subdirs] Error 2
WSNYDER/Verilog-Perl-3.464.tar.gz
/usr/bin/make -- NOT OK

I went to ~/.cpan/build/Verilog-Perl-3.464-*/

There are these suspicious lines in the Makefile.PL which I commented out:

if ($^V eq '5.12.4') {
    $out .= sprintf("LDDLFLAGS = -dynamiclib -lstdc++ -L/System/Library/Perl/5.12/%s/CORE -lperl -L/usr/local/lib\n",$Config{archname});
} elsif ($^V eq '5.18.2') {
    $out .= sprintf("LDDLFLAGS = -dynamiclib -lstdc++ -L/System/Library/Perl/5.18/%s/CORE -lperl -L/usr/local/lib\n",$Config{archname});
} else {
    $out .= sprintf("LDDLFLAGS = -dynamiclib -lstdc++ -L/System/Library/Perl/%vd/%s/CORE -lperl -lgcc_eh -L/usr/local/lib\n",$^V,$Config{archname});
}

and elsewhere this reference to PERL_INC:
VFileLine.o: $(PPSRC)/VFileLine.cpp
$(CCCMD) $(CCCDLFLAGS) "-I$(PERL_INC)" $(PASTHRU_DEFINE) $(DEFINE) $<

When I commented out the lines with the sprintf and deleted the reference to PERL_INC (in multiple Makefile.PL files), I was able to pass make in the .cpan/build/Verilog* directory and install the modules manually. So I am not blocked, but future Mac OSX users will be.

@veripoolbot

This comment has been minimized.

Copy link
Collaborator Author

@veripoolbot veripoolbot commented May 1, 2019


Original Redmine Comment
Author Name: Wilson Snyder (@wsnyder)
Original Date: 2019-05-01T21:13:19Z


Maybe Apple has finally properly built perl. Somehow I doubt it ;)

Can you please provide a patch that uses the version number (like the current hacks) to make it work on your system version (I don't want to break those on older versions), then I can upstream it. Thanks.

@veripoolbot

This comment has been minimized.

Copy link
Collaborator Author

@veripoolbot veripoolbot commented May 4, 2019


Original Redmine Comment
Author Name: Jack Langsdorf
Original Date: 2019-05-04T16:25:06Z


This seems to work and should keep older systems using the old method.
Makefile.PL is changed in three places. Verilog-Perl-3.464-0 was the original directory, Verilog-Perl-3.464-4 is one that can be installed.

diff Verilog-Perl-3.464-0/Makefile.PL Verilog-Perl-3.464-4/Makefile.PL
e36c36
< 	} else {
---
> 	} elsif ($^V < 'v5.26.3') {

diff Verilog-Perl-3.464-0/Preproc/Makefile.PL Verilog-Perl-3.464-4/Preproc/Makefile.PL
39c39
< 	} else {
---
> 	} elsif ($^V < 'v5.26.3') {

diff Verilog-Perl-3.464-0/Parser/Makefile.PL Verilog-Perl-3.464-4/Parser/Makefile.PL
39c39
< 	} else {
---
> 	} elsif ($^V < 'v5.26.3') {


@veripoolbot

This comment has been minimized.

Copy link
Collaborator Author

@veripoolbot veripoolbot commented May 5, 2019


Original Redmine Comment
Author Name: Wilson Snyder (@wsnyder)
Original Date: 2019-05-05T02:01:02Z


Great, thanks, fixed in git and 3.466.

@veripoolbot veripoolbot closed this May 5, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
1 participant
You can’t perform that action at this time.