change to include path handling broke ACLiC

From: Robert Hatcher <rhatcher_at_fnal.gov>
Date: Thu, 1 Apr 2010 15:27:40 -0500


Hi All,

   A change in the include file handling during the last week to broke the ability of our application to compile scripts using ACLiC. We use SRT for our package maintenance. It defines two areas of interest a public base release, and a private one. Often, unless otherwise overridden the private area is set to "." (no quotes). Our application adds these two locations by both ACLiC + CINT via:

    gSystem->SetIncludePath("-I<PrivatePath> -I<PublicPath>"); and

    gROOT->ProcessLine(".include <PrivatePath>");     gROOT->ProcessLine(".include <PublicPath>");

But with the recent change the previously harmless ".include ." now breaks ACLiC processing.

This can be demonstrated with just ROOT:

$ cat test_aclic.C

   #include <iostream>
   using namespace std;
   void test_aclic(const char* myarg = "blah" )    {
     cout << "myarg=\"" << myarg << "\"" << endl;    }

$ root
[...]
root [0] .x test_aclic.C++
Info in <TUnixSystem::ACLiC>: creating shared library /afs/fnal.gov/ files/home/room2/rhatcher/./test_aclic_C.so myarg="blah"
root [1] gSystem->GetIncludePath()
(const char* 0x83f92b0)"-I$ROOTSYS/include -I\"/grid/fermiapp/minos/
products/prd/MINOS_ROOT/Linux2.4-GCC_3_4/trunk/include\" " root [2] .include
include path: -I/grid/fermiapp/minos/products/prd/MINOS_ROOT/Linux2.4- GCC_3_4/trunk/include

compared to:

$ root
[...]
root [0] .include .
root [1] .x test_aclic.C++
Info in <TUnixSystem::ACLiC>: creating shared library /afs/fnal.gov/ files/home/room2/rhatcher/./test_aclic_C.so sh: -c: line 0: unexpected EOF while looking for matching `"' sh: -c: line 1: syntax error: unexpected end of file Warning in <ACLiC>: Failed to generate the dependency file for /afs/ fnal.gov/files/home/room2/rhatcher/./test_aclic_C.so sh: -c: line 0: unexpected EOF while looking for matching `"' sh: -c: line 1: syntax error: unexpected end of file Error in <ACLiC>: Compilation failed!
Error: Function test_aclic() is not defined in current scope :0: *** Interpreter error recovered ***
root [2] gSystem->GetIncludePath()
(const char* 0x83f5e98)"-I$ROOTSYS/include -I\"/grid/fermiapp/minos/
products/prd/MINOS_ROOT/Linux2.4-GCC_3_4/trunk/include\" -I\".\" " root [3] .include
include path: -I/grid/fermiapp/minos/products/prd/MINOS_ROOT/Linux2.4- GCC_3_4/trunk/include -I.

This is the SVN trunk, on Scientific Linux (and Mac OS X) w/ gcc 3.4.3
(or 4.0.1). The change that seems to have caused this was r32784.

-robert

Robert W. Hatcher | rhatcher_at_fnal.gov 630-840-3102 FNAL CD/REX (MINOS) | MS 220, PO Box 500, Batavia IL 60510 Received on Thu Apr 01 2010 - 22:27:52 CEST

This archive was generated by hypermail 2.2.0 : Thu Apr 01 2010 - 23:50:01 CEST