Hi!

Do you have any idea why the test "Bug598" fails? You seem to have
looked into it already.

- Olaf

On 08/31/2017 18:28, "Simon Schröder" wrote:
> Hi Olaf,
> 
> Thanks! I did not really think about ag++ because the tests do not use it.
> However, ag++ -std=XXX should be sufficient for users (User-friendliness was
> the main reason why I found the ac++ "std" argument useful).
> 
> Furthermore, thank you for fixing the ExecAdviceNewDelete test.
> 
> This makes Bug598 the last failing test on Debian 9 and I am not sure whether
> the test will be fixed quickly. As a workaround puma.config can be generated
> using "ag++ -std=gnu++98 --gen_config".
> 
> Reinhard, all in all, it should be sufficient for you to use the current trunk
> version and to add "-std=gnu++98" as ag++ command line argument when
> generating puma.config ("ag++ -std=gnu++98 --gen_config").
> 
> Best regards,
> 
> Simon
> 
> 
>> Hi Simon,
>>
>> I already suspected that I should think longer about this. ;-)
>>
>> I agree that the interface of ac++ for configuring the language standard
>> is not very convenient. However, it avoids redundancy. The __cplusplus
>> macro would have to be defined in puma.config anyway. Defining the
>> remaining parts of puma.config manually is either not convenient.
>>
>> If you use ag++, everything should work smoothly at the moment:
>> Depending on the gcc version and its default language standard, the
>> __cplusplus macro is defined in puma.config. If the project's source
>> code is written for some other standard, ag++ would be called with
>> -std=c++<year> and the __cplusplus macro would be generated accordingly.
>>
>> If we had a -std option in ac++, ag++ would have to be changed as well.
>>
>> In summary: I might be missing something, but still don't see the point
>> in that new option.
>>
>> - Olaf
>>
>>
>> On 08/31/2017 15:32, "Simon Schröder" wrote:
>>> Hi Olaf,
>>>
>>> Thank you for your opinion! I think my previous email was not clear enough. 
>>> My
>>> suggestion was/is to have a *default* language standard that is independent 
>>> of
>>> the operating system's default compiler. The language standard can still be
>>> changed to C++11, C++14, or C++17. Currently this change is possible by
>>> providing -D "__cplusplus=XXXXXXL" as a command line argument or through
>>> puma.config. What I do not like about this is that it is not documented (as
>>> far as I know) and that it is not as intuitive as a "std=..." command line
>>> argument. That is why I suggested adding that command line argument.
>>>
>>> Test Bug574 is fixed in current trunk version.
>>>
>>> Best regards,
>>>
>>> Simon
>>>
>>>
>>>
>>>> Hi!
>>>>
>>>> No. Please don't commit the fixes. I have implemented C++14 support in
>>>> ag++ and ac++ for good reasons. If ac++ is configured to internally use
>>>> the C++98 standard (always), it will not be able to handle programs that
>>>> make use of C++11/14/17 extensions. For instance, we wouldn't be able to
>>>> compile Qt 5.x applications anymore!
>>>>
>>>> If a test only works with a specific language standard, we can configure
>>>> that in its Makefile, e.g.:
>>>>
>>>> ACFLAGS ?= -D "__cplusplus=201103L"
>>>> CXXFLAGS ?= -std=c++11
>>>> include ../Makefile.generic
>>>>
>>>> However, normally the tests should work with C++98 *and* C++14, i.e.
>>>> older gccs und gcc >= 6. For the ExecAdviceNewDelete we should implement
>>>> different handling for the two cases in the weaver. However, first we
>>>> have to verify that the signature really changed. That would be quite
>>>> strange.
>>>>
>>>> tests/Bug574 should of course be fixed.
>>>>
>>>> Cheers,
>>>>
>>>> Olaf
>>>>
>>>> On 08/31/2017 14:23, "Simon Schröder" wrote:
>>>>> Hi Reinhard,
>>>>>
>>>>> I am able to reproduce the failing tests. The source of the problems is 
>>>>> that
>>>>> starting with gcc-6.0 the default language standard is gnu++14 (instead of
>>>>> gnu++98) (see [1]). When using an operating system that has gcc >= 6.0 as
>>>>> system compiler (e.g. debian 9), this leads to two problems:
>>>>>
>>>>> 1) Because Ag++ uses the system compiler without specifying a language
>>>>> standard to generate puma.config, puma.config contains the line
>>>>> -D "__cplusplus=201402L" (C++14) instead of -D "__cplusplus=199711L" 
>>>>> (C++98).
>>>>> This line causes AspectC++ to set the standard language of the internal 
>>>>> Clang
>>>>> compiler instance to C++14 (-std=c++14). In c++14 mode Clang behaves 
>>>>> different
>>>>> which leads to a different AspectC++ repo and to different woven code. In 
>>>>> case
>>>>> of Bug598 "different" means wrong (see [2]). In case of 
>>>>> ExecAdviceNewDelete
>>>>> "different" means that C++11 code is generated (which cannot be compiled 
>>>>> using
>>>>> g++ in non-C++11 mode).
>>>>>
>>>>> 2) When executing the tests, the woven code is compiled using the system
>>>>> compiler without specifying a language standard. Due to this, g++ with
>>>>> implicit -std=gnu++14 is used to compile the woven code. This makes
>>>>> ExecAdviceNewDelete fail, because g++ does not like "void *operator new
>>>>> (size_t ) throw(std::bad_alloc);" in gnu++14 mode (probably because
>>>>> "throw(std::bad_alloc)" is deprecated in C++11). On the other hand, 
>>>>> clang++ in
>>>>> gnu++14 mode does not complain, so this might be a g++ issue.
>>>>>
>>>>> To fix 1), AspectC++ should use gnu++98 as default (as on operating 
>>>>> systems
>>>>> with gcc < 6.0). To accomplish this, either ag++ has to explicitly set 
>>>>> gnu++98
>>>>> while generating puma.config or AspectC++ has to ignore -D 
>>>>> "__cplusplus=XXXX"
>>>>> and provide an own mechanism to set the language standard that should be 
>>>>> used
>>>>> for parsing and code generation. I would recommend the latter and would 
>>>>> add a
>>>>> new command line argument "--std" to AspectC++ whose default value is
>>>>> "gnu++98" and which could look like the following:
>>>>>      ...
>>>>>      -c|--compile <arg>         Name of the input file
>>>>>      -o|--output <arg>          Name of the output file
>>>>>      --std <arg>                Language standard used for parsing and 
>>>>> code generation
>>>>>      -i|--include_files         Generate manipulated header files
>>>>>      ...
>>>>>
>>>>> To fix 2), the woven test code should be compiled using gnu++98 
>>>>> regardless of
>>>>> the system compiler's default language standard, because the tests were
>>>>> written on the supposition that gnu++98 is used. Of course tests can
>>>>> explicitly change the language standard if they rely on C++11 or C++14
>>>>> (e.g. using "--std c++11").
>>>>>
>>>>> Test Bug574 is "just" indeterminate behavior because the value of an
>>>>> uninitialized member is used in an if-clause.
>>>>>
>>>>> I already created commits for my recommended fixed and if no one has
>>>>> objections, I would push them. What do you think? Olaf, what is your
>>>>> opinion?
>>>>>
>>>>> Best regards,
>>>>>
>>>>> Simon
>>>>>
>>>>>
>>>>> [1] https://gcc.gnu.org/gcc-6/changes.html
>>>>> [2]
>>>>>   template <typename TResult, typename TEntity>
>>>>>   __attribute__((always_inline)) inline TResult __Get__Z4mainv_1_0 
>>>>> (TEntity &ent,
>>>>> AC::RT<TResult>){
>>>>>     typedef TJP__Z4mainv_1_0< const TResult, void, void, const char [2], 
>>>>> AC::DILE,  AC::TLE >
>>>>> __TJP;
>>>>>     const TResult __result_buffer;
>>>>>     AC::invoke_Bar_Bar__a0_before<__TJP> ();
>>>>>     __result_buffer = ::arr;
>>>>>     return (const TResult &)__result_buffer;
>>>>>   }
>>>>>   int main() {
>>>>>     char x = __Get__Z4mainv_1_0<  > (arr[1], __AC_TYPEOF((arr[1])) );
>>>>>     return 0;
>>>>>   }
>>>>>
>>>>> instead of
>>>>>
>>>>>   template <typename TResult, typename TEntity, unsigned int TDim0, 
>>>>> typename TIdx0>
>>>>>   __attribute__((always_inline)) inline TResult __Get__Z4mainv_1_0 
>>>>> (TEntity (&base)[TDim0],
>>>>> TIdx0
>>>>> idx0, AC::RT<TResult>){
>>>>>     typedef TJP__Z4mainv_1_0< TResult, void, void, char, AC::DIL< 2, int, 
>>>>> AC::DILE >,  AC::TLE
>>>>>>
>>>>> __TJP;
>>>>>     TResult __result_buffer;
>>>>>     AC::invoke_Bar_Bar__a0_before<__TJP> ();
>>>>>     __result_buffer = ::arr[idx0];
>>>>>     return (TResult &)__result_buffer;
>>>>>   }
>>>>>   int main() {
>>>>>     char x = __Get__Z4mainv_1_0<  > (arr, (1), __AC_TYPEOF((arr[1])) );
>>>>>     return 0;
>>>>>   }
>>>>>
>>>>>
>>>>>> I've uploaded a new package that simply ignores failures from tests. Not 
>>>>>> exactly an ideal
>>>>>> situation because it renders the test ineffective.
>>>>>>
>>>>>> From what I understand I could instead dialer disable these the tests 
>>>>>> instead. But before
>>>>>> doing
>>>>>> that, I wanted to check with you if these failures also occurred on your 
>>>>>> akut Test
>>>>>> infrastructure.
>>>>>> If yes, how do you deal with them, maybe you could disable the test in 
>>>>>> svn. If they do not
>>>>>> appear
>>>>>> in akut, I wonder why.
>>>>>>
>>>>>> I agree that it's not super critical or urgent to me, but I think you 
>>>>>> are in a much per
>>>>>> position
>>>>>> to assess the criticality and urgency.
>>>>>>
>>>>>> Thanks
>>>>>> Reinhard
>>>>>>
>>>>>> On August 29, 2017 12:19:21 PM EDT, Olaf Spinczyk 
>>>>>> <olaf.spinc...@tu-dortmund.de> wrote:
>>>>>>> Hi Reinhard!
>>>>>>>
>>>>>>> We should definitely look into these three problems within the next few
>>>>>>> weeks, but I don't regard them as very critical, because they affect
>>>>>>> only special use cases: Advice for user-defined "operator new"
>>>>>>> implementations and the code generation for get/set advice, which is a
>>>>>>> feature that is only enabled with --data_joinpoints and still a bit
>>>>>>> experimental.
>>>>>>>
>>>>>>> How to proceed? Can we/you live with these problems for now and update
>>>>>>> later or is there no update option and we have to fix it sooner?
>>>>>>>
>>>>>>> Cheers,
>>>>>>>
>>>>>>> Olaf
>>>>>>>
>>>>>>> On 08/24/2017 00:16, Reinhard Tartler wrote:
>>>>>>>>
>>>>>>>>
>>>>>>>> On 08/23/2017 12:07 PM, Olaf Spinczyk wrote:
>>>>>>>>> Hi!
>>>>>>>>>
>>>>>>>>> You can generate the config file easily with ag++ --gen_config.
>>>>>>> Sorry
>>>>>>>>> for the inconvenience. The background is that when I wrote the first
>>>>>>>>> ac++ tests, I did not want the makefile to depend on ag++.
>>>>>>>>>
>>>>>>>>> We should change that sooner or later, because it is obviously
>>>>>>> confusing.
>>>>>>>>
>>>>>>>> Not a problem.
>>>>>>>>
>>>>>>>> Progress! With a "correct" PUMA CONFIG, I now get further, but there
>>>>>>> seem to be
>>>>>>>> genuine test failures. Are they concerning or shall I ignore them for
>>>>>>> the debian
>>>>>>>> package?
>>>>>>>>
>>>>>>>> They look like this:
>>>>>>>>
>>>>>>>> /usr/bin/make -C tests -s  all
>>>>>>>> make[2]: Entering directory
>>>>>>>> '/build/aspectc++-rCVJRW/aspectc++-2.2+git20170823/AspectC++/tests'
>>>>>>>>
>>>>>>> ...........................................[C:ExecAdviceNewDelete].................................................................................[D:Bug574].......[C:Bug598]........
>>>>>>>>
>>>>>>>>
>>>>>>>> +---------+
>>>>>>>> |ERRORS:  |
>>>>>>>> +---------+
>>>>>>>>
>>>>>>>>
>>>>>>> -----------------------------------------------------------------------------
>>>>>>>> TEST: ExecAdviceNewDelete
>>>>>>>>
>>>>>>> -----------------------------------------------------------------------------
>>>>>>>> STDOUT:
>>>>>>>> --------
>>>>>>>> make[3]: Entering directory
>>>>>>>>
>>>>>>> '/build/aspectc++-rCVJRW/aspectc++-2.2+git20170823/AspectC++/tests/ExecAdviceNewDelete'
>>>>>>>> Weaving main.cc
>>>>>>>> * Running ac++ 2.2
>>>>>>>> * Handling Translation Unit `main.cc'.
>>>>>>>>   - Path "main.cc"
>>>>>>>>   - Parsing ...
>>>>>>>>   - Weaving Aspects Forward Declarations ...
>>>>>>>>   - Inserting namespace AC
>>>>>>>>   - Committing
>>>>>>>>   - Preparing introductions ...
>>>>>>>>   - Parsing again ...
>>>>>>>>   - Weaving access control bypass classes ...
>>>>>>>>   - Weaving Join Points ...
>>>>>>>>     Advicecode manipulation
>>>>>>>>     Collecting Advice
>>>>>>>>       Setting up thisJoinPoint for aspectof
>>>>>>>>         Create pointcut expression tree
>>>>>>>>     Matching joinpoints
>>>>>>>>     Aspect ordering ...
>>>>>>>>     Creating project repository 'repo.acp'
>>>>>>>>     Type Check Functions
>>>>>>>>     Access Join Points
>>>>>>>>     Execution Join Points
>>>>>>>>       void *operator new(unsigned long int)
>>>>>>>>       void *operator new[](unsigned long int)
>>>>>>>>       void operator delete(void *)
>>>>>>>>       void operator delete[](void *)
>>>>>>>>       void A::operator delete(void *)
>>>>>>>>       void *C::operator new(unsigned long int)
>>>>>>>>       void C::operator delete(void *)
>>>>>>>>     Construction Join Points
>>>>>>>>     Destruction Join Points
>>>>>>>>   - Aspect Includes ...
>>>>>>>>   - Final cleanup
>>>>>>>>   - Committing
>>>>>>>> * Inserting unit pro- and epilogues
>>>>>>>>   - Manipulating translation unit file main.cc
>>>>>>>> * Updating #line directives of generated code fragments
>>>>>>>> * Saving
>>>>>>>>   - Expanding project includes
>>>>>>>>   - Fixing #line directives
>>>>>>>>   - Path "main.acc"
>>>>>>>> * Done
>>>>>>>> Compiling main.acc
>>>>>>>> ../Makefile.generic:80: recipe for target 'Junk/main.o' failed
>>>>>>>> make[3]: Leaving directory
>>>>>>>>
>>>>>>> '/build/aspectc++-rCVJRW/aspectc++-2.2+git20170823/AspectC++/tests/ExecAdviceNewDelete'
>>>>>>>>
>>>>>>>> STDERR:
>>>>>>>> --------
>>>>>>>> main.cc:5:30: warning: dynamic exception specifications are
>>>>>>> deprecated in C++11
>>>>>>>> [-Wdeprecated]
>>>>>>>>  void *operator new (size_t ) throw(std::bad_alloc);
>>>>>>>>                               ^~~~~
>>>>>>>> main.cc:7:31: warning: dynamic exception specifications are
>>>>>>> deprecated in C++11
>>>>>>>> [-Wdeprecated]
>>>>>>>>  void *operator new (size_t s) throw(std::bad_alloc) {
>>>>>>>>                                ^~~~~
>>>>>>>> main.cc: In function 'void* operator new(size_t)':
>>>>>>>> main.cc:7:7: error: declaration of 'void* operator new(size_t) throw
>>>>>>>> (std::bad_alloc)' has a different exception specifier
>>>>>>>>  void *operator new (size_t s) throw(std::bad_alloc) {
>>>>>>>>        ^~~~~~~~
>>>>>>>> main.cc:5:7: note: from previous declaration 'void* operator
>>>>>>> new(std::size_t)'
>>>>>>>>  void *operator new (size_t ) throw(std::bad_alloc);
>>>>>>>>        ^~~~~~~~
>>>>>>>> main.acc: In function 'void* operator new(std::size_t)':
>>>>>>>> main.acc:147:61: warning: dynamic exception specifications are
>>>>>>> deprecated in
>>>>>>>> C++11 [-Wdeprecated]
>>>>>>>>    typedef TJP__Znwm_0< void *, void, void, void *(::size_t)
>>>>>>>> throw(std::bad_alloc),  AC::TL< ::size_t, AC::TLE > > __TJP;
>>>>>>>>                                                              ^~~~~
>>>>>>>> main.cc: At global scope:
>>>>>>>> main.cc:11:33: warning: dynamic exception specifications are
>>>>>>> deprecated in C++11
>>>>>>>> [-Wdeprecated]
>>>>>>>>  void *operator new[] (size_t s) throw(std::bad_alloc) {
>>>>>>>>                                  ^~~~~
>>>>>>>> main.acc: In function 'void* operator new [](std::size_t)':
>>>>>>>> main.acc:198:61: warning: dynamic exception specifications are
>>>>>>> deprecated in
>>>>>>>> C++11 [-Wdeprecated]
>>>>>>>>    typedef TJP__Znam_0< void *, void, void, void *(::size_t)
>>>>>>>> throw(std::bad_alloc),  AC::TL< ::size_t, AC::TLE > > __TJP;
>>>>>>>>                                                              ^~~~~
>>>>>>>> make[3]: *** [Junk/main.o] Error 1
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>> -----------------------------------------------------------------------------
>>>>>>>> TEST: Bug574
>>>>>>>>
>>>>>>> -----------------------------------------------------------------------------
>>>>>>>> STDOUT:
>>>>>>>> --------
>>>>>>>> make[3]: Entering directory
>>>>>>>>
>>>>>>> '/build/aspectc++-rCVJRW/aspectc++-2.2+git20170823/AspectC++/tests/Bug574'
>>>>>>>> Weaving main.cc
>>>>>>>> * Running ac++ 2.2
>>>>>>>> * Handling Translation Unit `main.cc'.
>>>>>>>>   - Path "main.cc"
>>>>>>>>   - Parsing ...
>>>>>>>>   - Weaving Aspects Forward Declarations ...
>>>>>>>>   - Inserting namespace AC
>>>>>>>>   - Committing
>>>>>>>>   - Preparing introductions ...
>>>>>>>>   - Parsing again ...
>>>>>>>>   - Weaving access control bypass classes ...
>>>>>>>>   - Weaving Join Points ...
>>>>>>>>     Advicecode manipulation
>>>>>>>>     Collecting Advice
>>>>>>>>       Setting up thisJoinPoint for aspectof
>>>>>>>>         Create pointcut expression tree
>>>>>>>>     Matching joinpoints
>>>>>>>>     Aspect ordering ...
>>>>>>>>     Creating project repository 'repo.acp'
>>>>>>>>     Type Check Functions
>>>>>>>>     Access Join Points
>>>>>>>>       Get: bool Cyg_SchedThread::priority_inherited
>>>>>>>>       Get: int Cyg_SchedThread::original_priority
>>>>>>>>     Execution Join Points
>>>>>>>>     Construction Join Points
>>>>>>>>     Destruction Join Points
>>>>>>>>   - Aspect Includes ...
>>>>>>>>   - Final cleanup
>>>>>>>>   - Committing
>>>>>>>> * Inserting unit pro- and epilogues
>>>>>>>>   - Manipulating translation unit file main.cc
>>>>>>>> * Updating #line directives of generated code fragments
>>>>>>>> * Saving
>>>>>>>>   - Expanding project includes
>>>>>>>>   - Fixing #line directives
>>>>>>>>   - Path "main.acc"
>>>>>>>> * Done
>>>>>>>> Compiling main.acc
>>>>>>>> Linking
>>>>>>>> make[3]: Leaving directory
>>>>>>>>
>>>>>>> '/build/aspectc++-rCVJRW/aspectc++-2.2+git20170823/AspectC++/tests/Bug574'
>>>>>>>> make[3]: Entering directory
>>>>>>>>
>>>>>>> '/build/aspectc++-rCVJRW/aspectc++-2.2+git20170823/AspectC++/tests/Bug574'
>>>>>>>> 1a2
>>>>>>>>> int Cyg_SchedThread::original_priority
>>>>>>>> ../Makefile.generic:48: recipe for target 'diff' failed
>>>>>>>> make[3]: Leaving directory
>>>>>>>>
>>>>>>> '/build/aspectc++-rCVJRW/aspectc++-2.2+git20170823/AspectC++/tests/Bug574'
>>>>>>>>
>>>>>>>> STDERR:
>>>>>>>> --------
>>>>>>>> make[3]: *** [diff] Error 1
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>> -----------------------------------------------------------------------------
>>>>>>>> TEST: Bug598
>>>>>>>>
>>>>>>> -----------------------------------------------------------------------------
>>>>>>>> STDOUT:
>>>>>>>> --------
>>>>>>>> make[3]: Entering directory
>>>>>>>>
>>>>>>> '/build/aspectc++-rCVJRW/aspectc++-2.2+git20170823/AspectC++/tests/Bug598'
>>>>>>>> Weaving main.cc
>>>>>>>> * Running ac++ 2.2
>>>>>>>> * Handling Translation Unit `main.cc'.
>>>>>>>>   - Path "main.cc"
>>>>>>>>   - Parsing ...
>>>>>>>>   - Weaving Aspects Forward Declarations ...
>>>>>>>>   - Inserting namespace AC
>>>>>>>>   - Committing
>>>>>>>>   - Preparing introductions ...
>>>>>>>>   - Parsing again ...
>>>>>>>>   - Weaving access control bypass classes ...
>>>>>>>>   - Weaving Join Points ...
>>>>>>>>     Advicecode manipulation
>>>>>>>>     Collecting Advice
>>>>>>>>       Setting up thisJoinPoint for aspectof
>>>>>>>>         Create pointcut expression tree
>>>>>>>>     Matching joinpoints
>>>>>>>>     Aspect ordering ...
>>>>>>>>     Creating project repository 'repo.acp'
>>>>>>>>     Type Check Functions
>>>>>>>>     Access Join Points
>>>>>>>>       Get: char const arr[2]
>>>>>>>>     Execution Join Points
>>>>>>>>     Construction Join Points
>>>>>>>>     Destruction Join Points
>>>>>>>>   - Aspect Includes ...
>>>>>>>>   - Final cleanup
>>>>>>>>   - Committing
>>>>>>>> * Inserting unit pro- and epilogues
>>>>>>>>   - Manipulating translation unit file main.cc
>>>>>>>> * Updating #line directives of generated code fragments
>>>>>>>> * Saving
>>>>>>>>   - Expanding project includes
>>>>>>>>   - Fixing #line directives
>>>>>>>>   - Path "main.acc"
>>>>>>>> * Done
>>>>>>>> Compiling main.acc
>>>>>>>> ../Makefile.generic:80: recipe for target 'Junk/main.o' failed
>>>>>>>> make[3]: Leaving directory
>>>>>>>>
>>>>>>> '/build/aspectc++-rCVJRW/aspectc++-2.2+git20170823/AspectC++/tests/Bug598'
>>>>>>>>
>>>>>>>> STDERR:
>>>>>>>> --------
>>>>>>>> main.acc: In instantiation of 'TResult __Get__Z4mainv_1_0(TEntity&,
>>>>>>> AC::RT<T>)
>>>>>>>> [with TResult = char; TEntity = const char]':
>>>>>>>> main.cc:16:66:   required from here
>>>>>>>> main.acc:283:17: error: uninitialized const '__result_buffer'
>>>>>>> [-fpermissive]
>>>>>>>>    const TResult __result_buffer;
>>>>>>>>                  ^~~~~~~~~~~~~~~
>>>>>>>> main.acc:285:19: error: assignment of read-only variable
>>>>>>> '__result_buffer'
>>>>>>>>    __result_buffer = ::arr;
>>>>>>>>    ~~~~~~~~~~~~~~~~^~~~
>>>>>>>> main.acc:285:19: error: invalid conversion from 'const char*' to
>>>>>>> 'char'
>>>>>>>> [-fpermissive]
>>>>>>>> make[3]: *** [Junk/main.o] Error 1
>>>>>>>>
>>>>>>>> Makefile:161: recipe for target 'all' failed
>>>>>>>> make[2]: *** [all] Error 1
>>>>>>>> make[2]: Leaving directory
>>>>>>>> '/build/aspectc++-rCVJRW/aspectc++-2.2+git20170823/AspectC++/tests'
>>>>>>>> Makefile:259: recipe for target 'testall' failed
>>>>>>>> make[1]: *** [testall] Error 2
>>>>>>>> make[1]: Leaving directory
>>>>>>>> '/build/aspectc++-rCVJRW/aspectc++-2.2+git20170823/AspectC++'
>>>>>>>> debian/rules:52: recipe for target 'test-builds' failed
>>>>>>>>
>>>>>>
>>>>>> --
>>>>>> Sent from my cell phone. Please excuse my brevity and typos.
>>>>>
>>>>>
>>>>>
>>>>
>>>
>>>
>>>
>>
> 
> 
> 

Reply via email to