Gentoo Archives: gentoo-user

From: Al <oss.elmar@××××××××××.com>
To: gentoo-user@l.g.o
Subject: Re: [gentoo-user] Re: Shared libraries in Gentoo
Date: Thu, 09 Sep 2010 08:56:35
Message-Id: AANLkTin-fZS0NwJ9cOyDHbY0zv1j9+t=zF5MvtjCF1JB@mail.gmail.com
In Reply to: Re: [gentoo-user] Re: Shared libraries in Gentoo by Enrico Weigelt
1 >> * gcc covers the linker
2 >
3 > The 'gcc' command is a wrapper for several toolchain commands,
4 > from the actual compilers and assemblers down to linker.
5 > Yes, it's debatable whether that's really the recommended way (tm),
6 > but obviously it seems to be quite comfortable.
7 >
8
9 Somehow I don't really like the way it is done. The levels of
10 abstraction are mixed and it results in very cryptic parameters. IMHO
11 it should be one tool with coherent parameters or two tools. In the
12 latter case both would be controlled be the same build script. When
13 gcc says ld it should also say ar at least.
14
15 >> * libtool covers gcc and ar
16 >
17 > Not particularily well. It's not really a wrapper, at least no
18 > abstraction whatsoever, but more a command line filter doing
19 > certain (quite unpredictable) magic things. I'd instead suggest
20 > a real abstraction.
21
22 Similar gcc. Different tasks, different levels of abstraction are
23 somewhat queerly mixed. Another parameter style steps in.
24
25 >
26 >> * makefile configures it all
27 >
28 > Not perfect, but quite fine.
29 >
30 >> * to unburden from makefile writing, it is generated by configure
31 >
32 > Actually, completely unncessary. It would be much cleaner to
33 > let it just generate some makefile include for the configuration
34 > stuff and maybe provide a library of generic make rules.
35 >
36 >> * configure is needed to be generated from configure.in
37 >
38 > When you're going into the autotools hell. Also completely
39 > obsoleted before it even came into existence. A set of well-
40 > designed shell functions could do the job *much* better.
41 >
42
43 The shell script terminology is a little strange, especially the
44 conditions. They differ from the style of most modern languages,
45 differ even from C. I don't like the Ant approach either, because
46 logic doesn't fit well into XML. I would appriciate it based on a
47 modern programming language. Then there would be lesser needs for
48 autogeneration.
49
50 >> * now there comes ebuild as the next wrapper to make building easier
51 >
52 > Not just "easier", it essentially states where how to get the
53 > sources, which different build configurations are provided and
54
55 I wanted to stress how this "making easier" by another wrapper and
56 another wrapper leads finnally into kind of a debugging hell, that
57 makes matters more complicated in the end. Having different levels of
58 abstraction is fine, but they should do it in clean way without mixing
59 levels at least.
60
61 It's clear that the overall package management is a different layer
62 from program building. However the question of portablility for
63 example is mixed into all levels, is it libtool or is it eclasses. It
64 will be similar for things like internationalization.
65
66 Often the way it is simply exists for historical reasons. Well that is
67 the way of open source. At that point a company like MS can make more
68 courageous decisions of the overall design. Sometimes they make use of
69 it.
70
71 > glues that to the individual package's build scripts.
72 >
73 > Yes, there could be more generic approaches, eg. maintaining
74 > the whole (already-patched) source in a canonical repository
75 > scheme (see OSS-QM), having the package provide it's switches
76 > and depencies in a purely declarative way (see Briegel), etc.
77 >
78 >> How many languages are involved only to generate and install a C
79 >> program! Maschine code, C, bash, m4, python, ... what else? How much
80 >> knowlege is needed to debug this huge stack!
81 >
82 > The stack can be coped layer-by-layer. If you'd somehow manage
83
84 Ideally it can. In praxis the stack can't always be coped
85 layer-by-layer by different teams. In the moment the bug is there, you
86 have to search them all.
87
88 For my target of a port I have to understand them all, up to a certain
89 degree. I have to apply patches at different layers.
90
91 > to get Gentoo devs (along w/ other distro's maintainers) to
92 > adopt the oss-qm project, the stack would only start at the
93 > ebuild level (since everything beyond will be provided by
94 > oss-qm and checked/tested eccessively) ;-)
95
96 For my case that would be of help. I currently have to mix patches
97 from cygwin with patches from Gentoo. Sure that leads to conflicts.
98
99 However it is always problematic to depend on another team and have to
100 wait for bugfixes. You must be able to bugfix yourself. Is that
101 addressed by the oss-qm? Than it seems a layer between the original
102 sources and the own project. It adds new complexity. Is that price
103 worth the gain?
104
105 Al

Replies

Subject Author
Re: [gentoo-user] Re: Shared libraries in Gentoo Enrico Weigelt <weigelt@×××××.de>