[Glass] CHeader and CPreprocessor paths as arguments

bruno buzzi brassesco smalltalk at adinet.com.uy
Thu Jun 25 06:56:08 PDT 2020


  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
>>>> 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
>>
>>
>> _______________________________________________
>> Glass mailing list
>> Glass at lists.gemtalksystems.com
>> 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/ac7cb192/attachment-0001.htm>


More information about the Glass mailing list