On Thu, Jan 24, 2013 at 11:14 PM, Glenn Fowler <[email protected]> wrote:
> On Thu, 24 Jan 2013 22:51:22 +0100 Roland Mainz wrote:
>> On Sat, Aug 25, 2012 at 3:39 AM, Roland Mainz <[email protected]> 
>> wrote:
>> > On Sat, Aug 25, 2012 at 3:31 AM, Roland Mainz <[email protected]> 
>> > wrote:
>> >> On Sat, Aug 25, 2012 at 12:05 AM, Glenn Fowler <[email protected]> 
>> >> wrote:
>> >>>
>> >>> 2012-08-24 alphas posted to
>> >>>         www.research.att.com/sw/download/alpha/
>> >>> this is still a work in progress
>> >>
>> >> "ed" does not build on SuSE 12.1/Linux/AMD64:
>> >> -- snip --
>> >> + cc -DSHOPT_CMDLIB_BLTIN=0 '-DSH_CMDLIB_DIR="/usr/ast/bin"'
>> >> '-DSHOPT_CMDLIB_HDR="/home/test001/work/ast_ksh_20120824/build_i386_64bit_opt_extrabuiltins/tmp_gnulinux_builtin_heade
>> >> r.h"' -DSHOPT_SYSRC -D_map_libc=1 -O2 -fstrict-aliasing
>> >> -Wstrict-aliasing -Wsequence-point -Wno-parentheses -Wno-unused
>> >> -Wno-trigraphs -Wclobbered -Waddress -I- -I../../../include
>> >> /ast -D_PACKAGE_ast '-DUSAGE_LICENSE="[-author?Glenn Fowler
>> >> <[email protected]>][-copyright?Copyright (c) 1995-2012 AT&T
>> >> Intellectual Property][-license?http://www.eclipse.org/
>> >> org/documents/epl-v10.html][--catalog?re]"' -c
>> >> /home/test001/work/ast_ksh_20120824/build_i386_64bit_opt_extrabuiltins/src/cmd/re/ed.c
>> >> + cc -DSHOPT_CMDLIB_BLTIN=0 '-DSH_CMDLIB_DIR="/usr/ast/bin"'
>> >> '-DSHOPT_CMDLIB_HDR="/home/test001/work/ast_ksh_20120824/build_i386_64bit_opt_extrabuiltins/tmp_gnulinux_builtin_heade
>> >> r.h"' -DSHOPT_SYSRC -D_map_libc=1 -O2 -fstrict-aliasing
>> >> -Wstrict-aliasing -Wsequence-point -Wno-parentheses -Wno-unused
>> >> -Wno-trigraphs -Wclobbered -Waddress -I- -I../../../include
>> >> /ast -D_PACKAGE_ast '-DUSAGE_LICENSE="[-author?Glenn Fowler
>> >> <[email protected]>][-author?Doug McIlroy
>> >> <[email protected]>][-copyright?Copyright (c) 1995-2012 AT&T
>> >> Int
>> >> ellectual 
>> >> Property][-license?http://www.eclipse.org/org/documents/epl-v10.html][--catalog?re]";'
>> >> -c 
>> >> /home/test001/work/ast_ksh_20120824/build_i386_64bit_opt_extrabuiltins/src/cmd/r
>> >> e/grep.c
>> >> cc1: note: obsolete option -I- used, please use -iquote instead
>> >> cc1: note: obsolete option -I- used, please use -iquote instead
>> >> /home/test001/work/ast_ksh_20120824/build_i386_64bit_opt_extrabuiltins/src/cmd/re/ed.c:305:1:
>> >> error: conflicting types for 'splice'
>> >> /usr/include/bits/fcntl.h:294:16: note: previous declaration of
>> >> 'splice' was here
>> >> make [cmd/re]: *** exit code 1 making ed.o
>> >> -- snip --
>> >
>> > This namespace (libc vs. ast) collision comes from Olga having added |
>> > _GNU_SOURCE| to our build flags. But IMO it might be wise to rename
>> > the ast src/cmd/re/ed.c |splice()| to something else to avoid hitting
>> > this in the future...
>> >
>> > Glenn: Offtopic: is Linux splice(2) somehow useable within libast or
>> > AST tee(1) ?
>> > -- snip --
>> > SPLICE(2)            Linux Programmer's Manual           SPLICE(2)
>> >
>> >
>> >
>> > NAME
>> >        splice - splice data to/from a pipe
>> >
>> > SYNOPSIS
>> >        #define _GNU_SOURCE
>> >        #include <fcntl.h>
>> >
>> >        ssize_t splice(int fd_in, loff_t *off_in, int fd_out,
>> >                       loff_t *off_out, size_t len, unsigned int flags);
>> >
>> > DESCRIPTION
>> >        splice()  moves  data  between two file descriptors without
>> >        copying between  kernel  address  space  and  user  address
>> >        space.   It transfers up to len bytes of data from the file
>> >        descriptor fd_in to the file descriptor fd_out,  where  one
>> >        of the descriptors must refer to a pipe.
>> > -- snip --
>
>> Erm... ping! ... the build failure still happens with
>> ast-open.2012-11-21 (the simple "fix" would be to rename "ed"'s
>> |splice()| to |ed_splice()| or something like that to avoid the
>> namespace collision...) ...
>
> I added a #define to avoid the collision

Erm... how should a #define work in this case ? |splice()| is a libc _symbol_...

... and there is still the open question in the original email
above... basically "... can libast sfio+AST tee(1) benefit from
Linux's |splice()| ..." (I'm not sure since there are usage
limitations similar to Solaris |sendfile()|, e.g. " ... one of the
descriptors must refer to a pipe ...") ?

----

Bye,
Roland

-- 
  __ .  . __
 (o.\ \/ /.o) [email protected]
  \__\/\/__/  MPEG specialist, C&&JAVA&&Sun&&Unix programmer
  /O /==\ O\  TEL +49 641 3992797
 (;O/ \/ \O;)
_______________________________________________
ast-developers mailing list
[email protected]
http://lists.research.att.com/mailman/listinfo/ast-developers

Reply via email to