harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tim Ellison <t.p.elli...@gmail.com>
Subject Re: [classlib][awt] X11 libs
Date Fri, 01 Dec 2006 11:00:58 GMT
+1 to the points that Gregory makes below

Regards,
Tim

Gregory Shimansky wrote:
> On Thursday 30 November 2006 17:21 Oleg Khaschansky wrote:
>>> No, Sun links against X11 and ALSA and doesn't use dlopen. It doesn't
>>> seem to be a problem for anyone. Why can't we?
>> Yes, I think we can do this with X11, win32 API, etc. But we need to
>> have the right set of headers and stublibs to build the wrappers then.
>> This means that if you don't have X11 you can't build awt.
> 
> The requirements on developers may be quite wide. I don't see a problem that a 
> developer who works on awt has to have X11 installed. It seems to me quite a 
> sane requirement.
> 
>>> It is dynamic linking. I just don't like it that we have to *guess* the
>>> library name. It should be as few such cases as possible. Or we'll get
>>> the bug reports like in your URL.
>> Yes, ld approach is better from this POW. But transition to it could
>> be a bit more complicated then adding some heuristics to the existing
>> "dlopen" code.
> 
> I didn't mean it should be changed today. I mean that there is no need to hide 
> dependencies. It is not the way it is done in Linux world. If some library is 
> needed, it is needed, and it should be installed. Distributions handle it 
> pretty well AFAIK.
> 
> The way Sun and some other binary packages which are installed on Linux work 
> is that they try to be universal because they provide *binary* packages. 
> Binary means they don't care about environment, they should work in any 
> installation.
> 
> We provide *source*. It shall be a pain (actually no pain at all, Harmony is 
> not the first package in Linux history) for those who create distributions to 
> arrange all necessary libraries in place.
> 
> And even for distributions like Gentoo which build everything from source (I 
> am tempted to write a gentoo ebuild for Harmony from svn , but just don't 
> have time to do this) it is very easy to specify any library in Linux world 
> as a dependency which should be installed to build the package.
> 
> I would really like Harmony to be integrated tightly into Linux current code. 
> All major projects do this, even kde or mozilla, I think we can as well. If 
> we encounter bugs, we report them upstream just like everyone else does. Why 
> not?
> 
>>> I think that distribution integrators may just add opengl package as a
>>> dependency to harmony package, so it will be installed if harmony is
>>> installed.
>> The majority of OpenGL calls could be done using ld scheme. The rest
>> are video driver specific extensions. They should be called using
>> wgl/glxGetProcAddress anyway.
> 
> Well, this comes down to using OpenGL on Linux. I am not the expert in the way 
> OpenGL calls are done on Linux. If they are done through additional functions 
> found (or not found) in libGL.so, then it is fine. If there is some way to 
> recognize the extension functions through OpenGL interface, then use dlsym on 
> them, the scheme looks ok.
> 
>> On 11/30/06, Gregory Shimansky <gshimansky@gmail.com> wrote:
>>> Oleg Khaschansky wrote:
>>>>> Sun's Java seem to be bundling some libraries with itself like libzip
>>>>> and libjpeg. But the rest of the libraries like X11, ALSA, probably
>>>>> other are taken from the system.
>>>> As far as I know, RI uses dlopen approach, at least in some cases,
>>>> see, e.g. [1].
>>>>
>>>>> This means that we
>>>>> should either bundle in all the required libraries, or use dynamic
>>>>> linking with the libraries installed in the system.
>>>> Bundling in X11 and mesa? :)
>>> No, Sun links against X11 and ALSA and doesn't use dlopen. It doesn't
>>> seem to be a problem for anyone. Why can't we?
>>>
>>>> Isn't dlopen/dlsym approach a dynamic linking?
>>> It is dynamic linking. I just don't like it that we have to *guess* the
>>> library name. It should be as few such cases as possible. Or we'll get
>>> the bug reports like in your URL.
>>>
>>>> Again, some API could be missing in some systems (opengl extensions,
>>>> for example), what would you suggest to do in this case?
>>> I think that distribution integrators may just add opengl package as a
>>> dependency to harmony package, so it will be installed if harmony is
>>> installed.
>>>
>>>> [1] http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5011992
>>>>
>>>> On 11/29/06, Gregory Shimansky <gshimansky@gmail.com> wrote:
>>>>> Oleg Khaschansky wrote:
>>>>>> I think we should fix this problem for all libraries loaded with
>>>>>> dlopen on linux (i.e. for all autogenerated linux native wrappers).
>>>>>> As far as I recall, this problem already appeared for liblcms and
>>>>>> libXmu. I'd suggest to wait until we know if we'll have a generator
>>>>>> of native wrappers in harmony and, probably, fix it instead of
>>>>>> making temporary fixes in the autogenerated code.
>>>>> Sun's Java seem to be bundling some libraries with itself like libzip
>>>>> and libjpeg. But the rest of the libraries like X11, ALSA, probably
>>>>> other are taken from the system.
>>>>>
>>>>> I don't think that replacing dynamic linker on the system with out
>>>>> heuristics is the "right way". It is ld.so which should decide which
>>>>> library from the system should be linked with, be it
>>>>> /usr/lib/libXext.so.6 or /usr/lib/libasound.so.2. This means that we
>>>>> should either bundle in all the required libraries, or use dynamic
>>>>> linking with the libraries installed in the system.
>>>>>
>>>>> It doesn't seem to be a problem for anyone who uses Sun Java on a
>>>>> server that it is necessary to install X11 and ALSA libraries. On most
>>>>> Linux distributions it happens automatically using package
>>>>> dependencies. So I am -1 for this approach. Instead I think the
>>>>> wrappers should be changed to link against X11 dynamic libs directly.
>>> --
>>> Gregory
> 

-- 

Tim Ellison (t.p.ellison@gmail.com)
IBM Java technology centre, UK.

Mime
View raw message