[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] Introduce symbol versioning
  [Thread Prev] | [Thread Next]
 
 
- Subject: Re: [PATCH] Introduce symbol versioning
 - From: Jakub Jelen <jjelen@xxxxxxxxxx>
 - Reply-to: libssh@xxxxxxxxxx
 - Date: Mon, 12 Mar 2018 11:46:53 +0100
 - To: libssh@xxxxxxxxxx
 
On Fri, 2018-03-09 at 07:37 -0500, Anderson Sasaki wrote:
> [...]
> 
> From 3e38ba07df7667300714771dfbe72bbd3077f582 Mon Sep 17 00:00:00
> 2001
> From: Anderson Toshiyuki Sasaki <ansasaki@xxxxxxxxxx>
> Date: Thu, 8 Mar 2018 13:15:34 +0100
> Subject: [PATCH] Introduce symbol versioning
> 
> This adds a linker map, which adds version information for exported
> symbols, and the option to compile with symbol versioning. The symbol
> versioning is enabled by default, but disabled in non UNIX like
> platforms. It can be disabled by passing "-
> DWITH_SYMBOL_VERSIONING=OFF"
> option to cmake or "-withoutsymbolversioning" to "obj/build_make.sh".
There should be two dashes, isn't it? "--withoutsymbolversioning"
> [...]
> +
> +LIBSSH_4_5_0
Why the version 4_5_0 ? This will be the first symbol release? Or is
this some convention?
> +{
> +    global:
> +        buffer_free;
> +        buffer_get;
> +        buffer_get_len;
> +        buffer_new;
> +        channel_accept_x11;
> +        channel_change_pty_size;
> +        channel_close;
> +        channel_forward_accept;
> +        channel_forward_cancel;
> +        channel_forward_listen;
> +        channel_free;
> +        channel_get_exit_status;
> +        channel_get_session;
> +        channel_is_closed;
> +        channel_is_eof;
> +        channel_is_open;
> +        channel_new;
> +        channel_open_forward;
> +        channel_open_session;
> +        channel_poll;
> +        channel_read;
> +        channel_read_buffer;
> +        channel_read_nonblocking;
> +        channel_request_env;
> +        channel_request_exec;
> +        channel_request_pty;
> +        channel_request_pty_size;
> +        channel_request_send_signal;
> +        channel_request_sftp;
> +        channel_request_shell;
> +        channel_request_subsystem;
> +        channel_request_x11;
> +        channel_select;
> +        channel_send_eof;
> +        channel_set_blocking;
> +        channel_write;
> +        channel_write_stderr;
> +        privatekey_free;
> +        privatekey_from_file;
> +        publickey_free;
> +        publickey_from_file;
> +        publickey_from_privatekey;
> +        publickey_to_string;
> [...]
> +        _ssh_log;
> [...]
> +        string_burn;
> +        string_copy;
> +        string_data;
> +        string_fill;
> +        string_free;
> +        string_from_char;
> +        string_len;
> +        string_new;
> +        string_to_char;
> +    local:
> +        *;
> +};
Should the buffer_*, channel_*, string_*, publicky_*, privatekey_*
functions and obviously-internal _ssh_log() be covered in the API? I
don't think so. I would cover only the ssh_* and sftp_*, which is to my
understanding intended API.
I don't have a lot experience with it so these things might just need
some clarification why they are done this way.
Regards,
-- 
Jakub Jelen
Software Engineer
Security Technologies
Red Hat, Inc.
| Re: [PATCH] Introduce symbol versioning | Aris Adamantiadis <aris@xxxxxxxxxxxx> | 
| [PATCH] Introduce symbol versioning | Anderson Sasaki <ansasaki@xxxxxxxxxx> |