EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024  Index 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: AW: Problem compiling EPICS 7 commit 85d1982 when INSTALL_LOCATION is set
From: "Zimoch Dirk \(PSI\) via Core-talk" <core-talk at aps.anl.gov>
To: "Johnson, Andrew N." <anj at anl.gov>
Cc: EPICS core-talk <core-talk at aps.anl.gov>
Date: Mon, 20 Apr 2020 07:18:27 +0000

The correct fix should be to include both locations:

 

use lib ("$Bin/../../lib/perl", $Bin);

 

I will commit this if you confirm it fixes the problem.

 

I can confirm that with works with and without INSTALL_LOCATION.

 

I think we should add using INSTALL_LOCATION to the automated tests so that we can detect this type of problem early.

 

BTW: Why are the perl scripts installed to bin/$EPICS_HOST_ARCH anyway, even though they are platform independent?

Installing both, the perl programs and the perl modules to the same directory ($EPICS_BASE/bin/perl ? $EPICS_BASE/perl ?)  would make searching for them easier.  Of course that requires to extend PATH a bit.

 

Dirk

 

 

Von: Johnson, Andrew N. <anj at anl.gov>
Gesendet: Freitag, 17. April 2020 18:53
An: Zimoch Dirk (PSI) <dirk.zimoch at psi.ch>
Cc: EPICS core-talk <core-talk at aps.anl.gov>
Betreff: Re: Problem compiling EPICS 7 commit 85d1982 when INSTALL_LOCATION is set

 

On Apr 17, 2020, at 11:05 AM, Zimoch Dirk (PSI) via Core-talk <core-talk at aps.anl.gov> wrote:

 

The problem is much more convoluted.

 

Right, it’s actually a bootstrapping problem, although for this particular tool we could probably also avoid it by adding some dependencies to the Makefile. It’s easier to fix the ‘use lib’ line in the tool though.



Simply using $Bin only does not work later in the build process. But why is the script called from the source, not from the installation anyway?
CONFIG_BASE sets TOOLS = $(abspath $(EPICS_BASE_HOST_BIN)), which should be OK.
But src/tools/Makefile overwrites that with TOOLS = $(TOP)/src/tools (with TOP = ../..)
Removing that leads to a problem with $(TOOLS)/makeMakefile.pl in RULES_ARCH.
Using FIND_TOOL does not work here either.

 

Some of the Perl scripts in src/tools are needed by build rules that create the O.* directories and make the install tree and so on, so they aren’t installed when we first need to run them. FIND_TOOL allows them to be run from either location, but the scripts must still be able to locate any EPICS:: libraries they use when run from either location. The podToHtml.pl script only started using EPICS:: libraries very recently, and I didn’t think to add $Bin to it’s library search path at the time so this is my bug which I will fix.

 

Thanks for the report,

 

- Andrew

 



-----Ursprüngliche Nachricht-----
Von: Core-talk <core-talk-bounces at aps.anl.gov> Im Auftrag von Zimoch Dirk (PSI) via Core-talk
Gesendet: Freitag, 17. April 2020 17:00
An: 'core-talk at aps.anl.gov' <core-talk at aps.anl.gov>
Betreff: AW: Problem compiling EPICS 7 commit 85d1982 when INSTALL_LOCATION is set

Found the problem: In 3.15 podToHtml.pl is called from $INSTALL_LOCATION/bin/$EPICS_HOST_ARCH bit in 7.0 it is called from $PWD/src/tools.
Thus this search path does not work:
use lib "$Bin/../../lib/perl";

This works:
use lib "$Bin";


-----Ursprüngliche Nachricht-----
Von: Zimoch Dirk (PSI) <dirk.zimoch at psi.ch>
Gesendet: Freitag, 17. April 2020 16:02
An: Zimoch Dirk (PSI) <dirk.zimoch at psi.ch>; 'core-talk at aps.anl.gov' <core-talk at aps.anl.gov>
Betreff: AW: Problem compiling EPICS 7 commit 85d1982 when INSTALL_LOCATION is set

I think the problem is  a missing space in the search path:
@INC contains: /afs/psi.ch/group/8211/dirk/git/BASE/epics-base-7.0-reformat/src/tools/../../lib/perl ...

I guess that should be: /afs/psi.ch/group/8211/dirk/git/BASE/epics-base-7.0-reformat/src/tools/ ../../lib/perl ...

-----Ursprüngliche Nachricht-----
Von: Core-talk <core-talk-bounces at aps.anl.gov> Im Auftrag von Zimoch Dirk (PSI) via Core-talk
Gesendet: Freitag, 17. April 2020 15:22
An: 'core-talk at aps.anl.gov' <core-talk at aps.anl.gov>
Betreff: AW: Problem compiling EPICS 7 commit 85d1982 when INSTALL_LOCATION is set

Neither branch 3.15 commit 841effe (HEAD) nor commit 45cf2ea (merged into 7.0)  nor branch 7.0 commit ad44c7a5 9before merge) has this problem. It appears only with the last merge.
Dirk

-----Ursprüngliche Nachricht-----
Von: Core-talk <core-talk-bounces at aps.anl.gov> Im Auftrag von Zimoch Dirk (PSI) via Core-talk
Gesendet: Freitag, 17. April 2020 14:56
An: 'core-talk at aps.anl.gov' <core-talk at aps.anl.gov>
Betreff: Problem compiling EPICS 7 commit 85d1982 when INSTALL_LOCATION is set

$make EPICS_HOST_ARCH=linux-x86_64 INSTALL_LOCATION=/home/zimoch/epics7
[...]
Installing html /home/zimoch/epics7/html/./style.css
mkdir /home/zimoch/epics7/html
mkdir /home/zimoch/epics7/html/.
perl -CSD ../../../src/tools/podToHtml.pl -s -o Getopts.html ../EPICS/Getopts.pm
Can't locate EPICS/PodHtml.pm in @INC (@INC contains: /afs/psi.ch/group/8211/dirk/git/BASE/epics-base-7.0-reformat/src/tools/../../lib/perl /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at ../../../src/tools/podToHtml.pl line 18.
BEGIN failed--compilation aborted at ../../../src/tools/podToHtml.pl line 18.
make[3]: *** [../O.Common/EPICS/Getopts.html] Error 2
make[3]: Leaving directory `/afs/psi.ch/group/8211/dirk/git/BASE/epics-base-7.0-reformat/src/tools/O.linux-x86_64'
make[2]: *** [install.linux-x86_64] Error 2
make[2]: Leaving directory `/afs/psi.ch/group/8211/dirk/git/BASE/epics-base-7.0-reformat/src/tools'
make[1]: *** [tools.install] Error 2
make[1]: Leaving directory `/afs/psi.ch/group/8211/dirk/git/BASE/epics-base-7.0-reformat/src'
make: *** [src.install] Error 2

A colleague has reported the same problem on Windows.

No problem when INSTALL_LOCATION is not set.

Dirk

 

-- 

Complexity comes for free, simplicity you have to work for.

 


Replies:
Re: Problem compiling EPICS 7 commit 85d1982 when INSTALL_LOCATION is set Johnson, Andrew N. via Core-talk
References:
Problem compiling EPICS 7 commit 85d1982 when INSTALL_LOCATION is set Zimoch Dirk (PSI) via Core-talk
AW: Problem compiling EPICS 7 commit 85d1982 when INSTALL_LOCATION is set Zimoch Dirk (PSI) via Core-talk
AW: Problem compiling EPICS 7 commit 85d1982 when INSTALL_LOCATION is set Zimoch Dirk (PSI) via Core-talk
AW: Problem compiling EPICS 7 commit 85d1982 when INSTALL_LOCATION is set Zimoch Dirk (PSI) via Core-talk
AW: Problem compiling EPICS 7 commit 85d1982 when INSTALL_LOCATION is set Zimoch Dirk (PSI) via Core-talk
Re: Problem compiling EPICS 7 commit 85d1982 when INSTALL_LOCATION is set Johnson, Andrew N. via Core-talk

Navigate by Date:
Prev: Build failed: EPICS Base base-7.0-591 AppVeyor via Core-talk
Next: Re: Problem compiling EPICS 7 commit 85d1982 when INSTALL_LOCATION is set Johnson, Andrew N. via Core-talk
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024 
Navigate by Thread:
Prev: Re: Problem compiling EPICS 7 commit 85d1982 when INSTALL_LOCATION is set Johnson, Andrew N. via Core-talk
Next: Re: Problem compiling EPICS 7 commit 85d1982 when INSTALL_LOCATION is set Johnson, Andrew N. via Core-talk
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024 
ANJ, 20 Apr 2020 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·