[Glass] CHeader and CPreprocessor paths as arguments
Smalltalk at JGFoster.net
Smalltalk at JGFoster.net
Thu Jun 25 09:03:57 PDT 2020
My guess is that it is not so much that it is expecting only one argument as that it failed to parse the second argument (struct structName **parameteName).
> On Jun 25, 2020, at 6:56 AM, bruno buzzi brassesco via Glass <glass at lists.gemtalksystems.com> wrote:
>
> Hi,
>
> These are the C declarations:
> LIBSSH_API enum ssh_known_hosts_e ssh_session_has_known_hosts_entry(ssh_session session);
> LIBSSH_API enum ssh_known_hosts_e ssh_session_get_known_hosts_entry(ssh_session session,
> struct ssh_knownhosts_entry **pentry);
> LIBSSH_API enum ssh_known_hosts_e ssh_session_is_known_server(ssh_session session);
>
> The second is failing so it seems that is expecting only one argument as the others two declarations.
> Not sure why...
>
> regards,
> bruno
>
> On 25/6/2020 10:31, bruno buzzi brassesco via Glass wrote:
>> Hi,
>>
>> On GS 3.5 with a default installation (apt-get install libssh-dev) the wrapper is generated correctly.
>>
>> But on a manually compiled installation I got the error below.
>> Which situation could lead to this problem?
>>
>> The problem is with the following declaration:
>> LIBSSH_API enum ssh_known_hosts_e ssh_session_get_known_hosts_entry(ssh_session session,
>> struct ssh_knownhosts_entry **pentry);
>>
>> The token is a coma , but is expecting a right parenthesis ). For some reason it is expecting the end of the declaration but as you can see above the declaration has 2 arguments. So somehow it is expecting another declaration .... still researching this...
>>
>> a Error occurred (error 2710), expected ')' near line 592 in file /gemstone/3rd-party-bin/
>> libssh-0.9.4/include/libssh.h
>> Error (AbstractException) >> _signalWith: @6 line 25
>> Error (AbstractException) >> signal: @3 line 7
>> Error class (AbstractException class) >> signal: @3 line 4
>> CDeclaration >> error: @8 line 3
>> CDeclaration >> readDirectDeclarator @43 line 24
>> CDeclaration >> readDeclarator @12 line 14
>> CDeclaration >> readDeclaration @5 line 12
>> CHeader >> readOneUnderStorageHandler: @7 line 9
>> CHeader >> readExternLinkageDeclarationsUnderStorageRegimeFrom: @19 line 19
>> [] in ExecBlock1 (CHeader) >> readOne @12 line 7
>> CHeader >> readOneUnderStorageHandler: @9 line 11
>> CHeader >> readOne @3 line 3
>> CHeader >> initialize: @25 line 18
>> CHeader class >> preprocessor: @3 line 4
>> CHeader class >> path: @3 line 3
>> Executed Code @3 line 2
>> GsNMethod class >> _gsReturnToC @1 line 1
>> On 24/6/2020 14:01, James Foster via Glass wrote:
>>> 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 <mailto: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 <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 <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 <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/20200625/d1065061/attachment-0001.htm>
More information about the Glass
mailing list