Hi,

El 13/09/18 a les 14:42, Lange Norbert ha escrit:

> link order is important and goes left-to-right, this seems to include 
> "wrappers",
> which only wrap symbols that where already encountered (to the left of the 
> wrapper argument)

[...]


> The call to malloc is wrapped to __wrap_malloc and __real_malloc is wrapped 
> to malloc,
> since there is no object file yet, this does nothing.
> libmodechk exports __wrap_malloc and __real_malloc, yet no one cares and 
> --as-needed
> will remove it as dependency
> The app objects depend on malloc.
> 
> I am not sure where your dependency to __real_malloc comes from, but I suppose
> It's from the bootstrap code, which would be needed to be linked before the 
> wrapper.
> Probably weak dependencies further complicate things.

I think that you got the point!!

So, from my point of view it confirm my suspicious that the wrapper
mechanism is fragile. I really didn't understand why Xenomai core team
changed the native API for the POSIX. Although I saw the Jan Kiska
conference video explaining it, tell me primitive or dump, but I prefer
to have a RT API that links against RT libraries and you can mix the
POSIX functions that you want in a clear way.

OTOH I have to admit that convert a POSIX program to RT in an easy way
is amazing.

> As noted by Henning, please look at https://github.com/nolange/cmake_xenomai,
> could use some feedback =).
> Particularly look at the patchset which also removes some headaches with 
> linking
> precompiled object file for bootstrapping (but needs some upstream changes).

Norbert, I have followed your emails and your project. You did a good
job, but I don't agree with your approach. My points are:

- You are trying to convert Xenomai a CMake project and this probably
will not happen because Upstream is very happy with the autotools. I
don't like to touch anything from upstream. Maybe some patch, but
incorporated in Upstream.

- I would prefer follow the Upstream guidelines that recommends use
xeno-config to obtain the needed parameters to build your application.
So, any build tool should use xeno-config (maintained by upstream) that
provide the correct flags or whatever to build your application.

- I agree with Norbert that bootstraped code is not a good idea. But
this change should be done by upstream. But if I'm not wrong, Phillipe
said that it hasn't an easy solution.

But for the curious, I have done this example:

https://github.com/iocroblab/xenomai-cmake

but it's not polished and had some mistakes. The idea is to use any
Xenomai installation without touched and then use CMake to build your
application.

Cheers,

Leopold


-- 
--
Linux User 152692     GPG: 05F4A7A949A2D9AA
Catalonia
-------------------------------------
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?
A: Top-posting.
Q: What is the most annoying thing in e-mail?

_______________________________________________
Xenomai mailing list
Xenomai@xenomai.org
https://xenomai.org/mailman/listinfo/xenomai

Reply via email to