Login  Register

Re: CHeader and CPreprocessor paths as arguments

Posted by GLASS mailing list on Jun 24, 2020; 4:58pm
URL: https://forum.world.st/CHeader-and-CPreprocessor-paths-as-arguments-tp5118983p5118989.html

Bruno,

Here's our advice:

I would think that  editing  CPreprocessor>>defaultSearchPaths  would be a good workaround

Keep in mind that 3.5  is using the native  preprocessor   /usr/bin/cpp
for all of the macro expansion and then reading the output of  cpp  
with our CPreprocessor code.   3.3 is trying to do all of the macro
expansion in  CPreprocessor  and that has quite a few bugs that may
be triggered by system header files in newer versions of Linux than what 3.3 
was originally tested with.
If you encounter such bugs with 3.3, you might need to run 
/usr/bin/cpp on the header files of interest and then feed the resulting
output to CPreprocessor .
Dale

On 6/24/20 5:09 AM, bruno buzzi brassesco via Glass wrote:
Hi,

In GS 3.5 it is possible to pass paths as arguments:
CHeader>>path:searchPaths:

In GS 3.3.x that method is not present but it will have the same effect if we add our paths to:
CPreprocessor>>defaultSearchPaths
Can this be a workaround for the error below ?

Trying to generate a wrapper with:
UserGlobals at: #'LibSsh094' put: (CHeader path: '/customized/path/libssh.h').

Answer the error:
Unhandled exception: GS Server Error - GbsGemStoneError - a UserDefinedError occurred (error 2740), Include file sys/cdefs.h not found!
[1]  GS: UserDefinedError (AbstractException) >> _signalWith: @6 line 25
[2]  GS: UserDefinedError (AbstractException) >> signal: @3 line 7
[3]  GS: UserDefinedError class (AbstractException class) >> signal: @3 line 4
[4]  GS: CPreprocessor >> include:afterMe: @55 line 39
[5]  GS: CPreprocessor >> applyDirectiveToken: @27 line 10
[6]  GS: CPreprocessor >> applyToken: @4 line 3
[7]  GS: CPreprocessor >> doIf: @11 line 12
[8]  GS: CPreprocessor >> ifdef:defined: @22 line 8
[9]  GS: CPreprocessor >> applyDirectiveToken: @19 line 8
[10] GS: CPreprocessor >> applyToken: @4 line 3
[11] GS: CPreprocessor >> doIf: @11 line 12
[12] GS: CPreprocessor >> ifdef:defined: @22 line 8
[13] GS: CPreprocessor >> applyDirectiveToken: @19 line 8
[14] GS: CPreprocessor >> applyToken: @4 line 3
[15] GS: CPreprocessor >> doIf: @11 line 12
[16] GS: CPreprocessor >> ifdef:defined: @22 line 8
[17] GS: CPreprocessor >> applyDirectiveToken: @19 line 8
[18] GS: CPreprocessor >> applyToken: @4 line 3
[19] GS: CPreprocessor >> readTillEnd @6 line 7
[20] GS: [] in  ExecBlock0 (CPreprocessor) >> includePath: @20 line 12
[21] GS: ExecBlock0 (ExecBlock) >> ensure: @2 line 12
[22] GS: CPreprocessor >> includePath: @16 line 13
[23] GS: [] in  ExecBlock1 (CPreprocessor) >> include:afterMe: @68 line 34
[24] GS: OrderedCollection (Collection) >> do: @6 line 10
[25] GS: CPreprocessor >> include:afterMe: @41 line 26
[26] GS: CPreprocessor >> applyDirectiveToken: @27 line 10
[27] GS: CPreprocessor >> applyToken: @4 line 3
[28] GS: CPreprocessor >> doIf: @11 line 12
[29] GS: CPreprocessor >> ifdef:defined: @22 line 8
[30] GS: CPreprocessor >> applyDirectiveToken: @19 line 8
[31] GS: CPreprocessor >> applyToken: @4 line 3
[32] GS: CPreprocessor >> readTillEnd @6 line 7
[33] GS: [] in  ExecBlock0 (CPreprocessor) >> includePath: @20 line 12
[34] GS: ExecBlock0 (ExecBlock) >> ensure: @2 line 12
[35] GS: CPreprocessor >> includePath: @16 line 13
[36] GS: [] in  ExecBlock1 (CPreprocessor) >> include:afterMe: @68 line 34
[37] GS: OrderedCollection (Collection) >> do: @6 line 10
[38] GS: CPreprocessor >> include:afterMe: @41 line 26
[39] GS: CPreprocessor >> applyDirectiveToken: @27 line 10
[40] GS: CPreprocessor >> applyToken: @4 line 3
[41] GS: CPreprocessor >> doIf: @11 line 12
[42] GS: CPreprocessor >> ifdef:defined: @22 line 8
[43] GS: CPreprocessor >> applyDirectiveToken: @15 line 7
[44] GS: CPreprocessor >> applyToken: @4 line 3
[45] GS: CPreprocessor >> doIf: @11 line 12
[46] GS: CPreprocessor >> ifdef:defined: @22 line 8
[47] GS: CPreprocessor >> applyDirectiveToken: @19 line 8
[48] GS: CPreprocessor >> applyToken: @4 line 3
[49] GS: CPreprocessor >> readTillEnd @6 line 7
[50] GS: [] in  ExecBlock0 (CPreprocessor) >> includePath: @20 line 12
[51] GS: ExecBlock0 (ExecBlock) >> ensure: @2 line 12
[52] GS: CPreprocessor >> includePath: @16 line 13
[53] GS: CPreprocessor class >> parseFileAt: @3 line 4
[54] GS: CHeader class >> path: @2 line 3


_______________________________________________
Glass mailing list
[hidden email]
https://lists.gemtalksystems.com/mailman/listinfo/glass

_______________________________________________
Glass mailing list
[hidden email]
https://lists.gemtalksystems.com/mailman/listinfo/glass