[Glass] CHeader and CPreprocessor paths as arguments
Smalltalk at JGFoster.net
Smalltalk at JGFoster.net
Wed Jun 24 10:01:10 PDT 2020
Another idea is to generate the wrapper in 3.5.x and then back-port it to 3.3.x.
> On Jun 24, 2020, at 9:58 AM, Dale Henrichs via Glass <glass at lists.gemtalksystems.com> wrote:
>
> 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
>> Glass at lists.gemtalksystems.com <mailto:Glass at lists.gemtalksystems.com>
>> https://lists.gemtalksystems.com/mailman/listinfo/glass <https://lists.gemtalksystems.com/mailman/listinfo/glass>
> _______________________________________________
> Glass mailing list
> Glass at lists.gemtalksystems.com
> https://lists.gemtalksystems.com/mailman/listinfo/glass
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.gemtalksystems.com/mailman/private/glass/attachments/20200624/0f0bff26/attachment-0001.htm>
More information about the Glass
mailing list