Yes it's fine.
It's been a while now - but I do remember trying relative hard to include defs.h.
At the time it did look like a bit too much to handle. But like my comment says if someone wants to give it a try that would be great.
-Luc
-----Original Message-----
From: Dave Anderson [mailto:anderson@xxxxxxxxxx]
Sent: Thu 4/30/2009 2:06 PM
To: Discussion list for crash utility usage, maintenance and development
Cc: Chouinard, Luc; Chouinard, Luc
Subject: Re: Include file for extensions
----- "Michael Holzheu" <holzheu@xxxxxxxxxxxxxxxxxx> wrote:
> Hi again,
>
> We found a problem in sial. Because sial.c does not include defs.h, for
> all used functions like "ulong symbol_value(char *)", that do not have a
> prototype, the compiler assumes that the return value is int. Therefore
> we get wrong results.
>
> A comment in sial.c says:
>
> // some stuff from crash's defs.h, file which cannot be included here.
> // Hate to do this but this is a quick port..
> // If anyone cares to work on the include and defs structure to make
> // this work cleanly...
>
> If you compile sial with "-Wall" you get:
>
> gcc -g -I.. -Ilibsial -I../gdb-6.1/bfd -I../gdb-6.1/include
> -I../gdb-6.1/gdb -I../gdb-6.1/gdb/config -nostartfiles -shared
> -rdynamic
> -o sial.so sial.c -fPIC -DS390X -Wall -Llibsial -lsial
> sial.c: In function 'apigetmem':
> sial.c:96: warning: implicit declaration of function 'readmem'
> sial.c: In function 'apigetval':
> sial.c:424: warning: implicit declaration of function 'symbol_exists'
> sial.c:425: warning: implicit declaration of function 'symbol_value'
> sial.c: In function 'apigetdefs':
> sial.c:572: warning: implicit declaration of function 'sial_addneg'
> sial.c: In function 'edit_cmd':
> sial.c:676: warning: implicit declaration of function 'cmd_usage'
> sial.c: In function 'rm_sial_cmd':
> sial.c:842: warning: unused variable 'end'
> sial.c: At top level:
> sial.c:917: warning: return type defaults to 'int'
> sial.c: In function '_init':
> sial.c:1013: warning: implicit declaration of function
> 'register_extension'
>
> To solve the problem, we could either define an small official API
> include file for crash extensions (crash.h?), make defs.h include-able
> or just do the quick and ugly fix that declares the missing functions in
> sial.c.
No, there's no need for a "crash.h" file, because by definition crash
extensions modules are *supposed* to #include "defs.h". In fact, the
crash-devel subpackage solely consists of "/usr/include/crash/defs.h"
for extension module writers.
But Luc Chouinard apparently ran into some difficulties with duplicate
declarations or something like that when he did the port.
Anyway, I don't touch the SIAL stuff, and even though the patch below is
fine with me, I'll defer to Luc Chouinard to see if he wants to address
it otherwise. I've cc'd him directly with this response -- he'll probably
say it's fine.
Thanks,
Dave
>
> Michael
>
> The following is the fix for solution (3):
> ---
> extensions/sial.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> Index: crash-4.0-8.9/extensions/sial.c
> ===================================================================
> --- crash-4.0-8.9.orig/extensions/sial.c
> +++ crash-4.0-8.9/extensions/sial.c
> @@ -84,6 +84,13 @@ struct command_table_entry {
> extern FILE *fp;
> extern char *crash_global_cmd();
>
> +typedef unsigned long long int ulonglong;
> +extern int readmem(ulonglong, int, void *, long, char *, ulong);
> +extern int symbol_exists(char *);
> +extern ulong symbol_value(char *);
> +extern void cmd_usage(char *, int);
> +extern void register_extension(struct command_table_entry *);
> +
> //
>
> /////////////////////////////////////////////////////////////////////////
> /*
-- Crash-utility mailing list Crash-utility@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/crash-utility