Plugins shouldn’t link with libtsutil to begin with and is not required since 
traffic_server already loads the .so and we don’t check if the symbols exist 
for plugins.  tsxs and our build tree should add libtscpp.so as a library to 
link with when using c++ automatically.

Also, we should also split out the C api library code into a separate library 
(libts.so), so plugin writers could link with it and removed -shared, so they 
can verify the symbols exist.  Currently this is not possible.

-Bryan



> On May 24, 2018, at 9:11 AM, Alan Carroll <solidwallofc...@oath.com.INVALID> 
> wrote:
> 
> To paraphrase, I'm extremely negative on combining non-API related utility
> headers with TS API headers. They're really quite different and that's
> something users (such as me) writing plugins would care about.  I would
> greatly appreciate them being distinct. Separating API from utility
> mechanisms is quite a common pattern in open source as well. Beyond that, I
> still think I'd like to have clear indicator about whether I have to put
> extra link information in my makefile - linking to libtscpp doesn't happen
> automatically and knowing that I need to do it is not a trivial point when
> building a plugin.
> 
> I'll update the PR with the CPP API library rename after lunch.
> 
> On Thu, May 24, 2018 at 11:01 AM, Bryan Call <bc...@apache.org> wrote:
> 
>> It would be best to combine include/tscpp and include/tsutil into one
>> directory (include/tscpp).  External users writing plugins really don’t
>> care about the dependency distinction between them.
>> 
>> This would mean that would would need to move the files from the lib/ts
>> directory over to the lib/cppapi directory. Also, the cppapi library should
>> be called libtscpp.so to be in sync with the include directory name.
>> 
>> -Bryan
>> 
>> 
>> 
>>> On May 24, 2018, at 6:45 AM, Alan Carroll <solidwallofc...@oath.com.INVALID>
>> wrote:
>>> 
>>> Based on feedback here, on IRC, and on the PR, the changes have been
>>> updated.
>>> 
>>> Exported headers have been moved to the top level 'include' directory.
>>> 
>>> include/ts -> C API headers.
>>> include/tscpp -> C++ API headers.
>>> include/tsutil -> C++ utility headers.
>>> 
>>> The same directories are used for the install. This reduces differences
>>> between in core plugins and external plugins - both will now use the same
>>> include paths for the same headers.
>>> 
>>> Source changes -
>>> 
>>> lib/ts -> lib/tsutil : this removes the problem where 'ts' as part of the
>>> include path meant different things externally vs. internally. Now 'ts'
>> is
>>> always the C API headers and 'tsutil' are the utility headers. This also
>>> means 'libtsutil.so' is built in 'lib/tsutil' which is nice. As part of
>>> this 'apidefs.h.in' and 'apidefs.h' were moved to 'include/ts' because
>>> those are C API headers. The include path for this file remains
>>> 'ts/apidefs.h'.
>>> 
>>> On Wed, May 23, 2018 at 4:31 PM, Jason Kenny <jke...@oath.com.invalid>
>>> wrote:
>>> 
>>>> I gave a talk on this my first summate. Honestly, most people I talk to
>> are
>>>> +1 on this.
>>>> 
>>>> The only complaint about fixing our layout and refactoring broken code
>> was
>>>> that it makes it hard to cherry pick back to older drops. People
>> complain
>>>> and hack the build more and more. I want to:
>>>> 
>>>> 1) simplify the build
>>>> 2) make it easier for people to find the real source.
>>>> 3) make it easier to change or add api without coming up with odd and
>>>> overly clever names or tricks to avoid having a clean layout
>>>> 
>>>> I believe in the end cleaner code will only make it easier for people to
>>>> want to help out and join the ATS community. making complex as it scares
>>>> people away to other projects
>>>> 
>>>> Jason
>>>> 
>>>> On Wed, May 23, 2018 at 4:25 PM, Leif Hedstrom <zw...@apache.org>
>> wrote:
>>>> 
>>>>> 
>>>>> 
>>>>>> On May 23, 2018, at 3:20 PM, Jason Kenny <jke...@oath.com.INVALID>
>>>>> wrote:
>>>>>> 
>>>>>>>> 1) I don’t like the “src” top level directory, that implies that all
>>>>>> source is there (which is clearly not the case)
>>>>>> We cannot move everything at once. We have to do stuff in small steps.
>>>>>> 
>>>>>> I would really like to get all the source under an src/ dir to solve a
>>>>>> number of stupid build problems we have. We have to start someplace,
>>>> and
>>>>>> honestly this is a good first step.
>>>>> 
>>>>> Hugely -1 on this ninja move.
>>>>> 
>>>>> This should be discussed / suggested in a separate discussion / PR, and
>>>>> not snuck in like this into another PR. I.e. do not do this here, but
>> if
>>>> we
>>>>> decide to change this later, make that change there.
>>>>> 
>>>>> I’d be curious to hear about your build problems too, in the last 10+
>>>>> years, no one has had any such issues because of the lack of a src/,
>>>> that I
>>>>> know of at least.
>>>>> 
>>>>> Ciao,
>>>>> 
>>>>> — leif
>>>>> 
>>>>> 
>>>> 
>> 
>> 

Reply via email to