On Fri, Mar 23, 2007 at 10:43:46AM +0000, Tony Mountifield wrote:
> In article <[EMAIL PROTECTED]>,
> Kristian Kielhofner <[EMAIL PROTECTED]> wrote:
> > Hey everyone,
> > 
> >   In the Zaptel Makefile (confirmed in 1.4.1) why isn't gendigits
> > built with HOSTCC instead of CC?
> 
> Hi Kris,
> 
> The use of HOSTCC in Zaptel has historically been very confused. See bug
> number 9207, which I raised in Mantis.
> 
> Until last July, the Zaptel Makefile used HOSTCC to build kernel modules,
> and CC to build user-space utilities. This distinction was quite important
> on earlier Fedora releases based on the 2.4 kernel, because the kernel
> was built with gcc32 and user-space utils were built with gcc (v3.3).
> So on such systems, I always used to build with HOSTCC=gcc32 to ensure
> the Zaptel kernel modules were built with the correct compiler (otherwise
> I would get loads of compiler warnings about __set_64bit_var or something).
> 
> When I recently discovered that the distinction between kernel-space
> and user-space object compilation had disappeared (uses of $(HOSTCC) had
> been changed to $(CC)), I raised the above-mentioned bug, which turned
> out to be a very frustrating experience.
> 
> I originally thought this was a standard usage of HOSTCC, but it turns
> out that the original use of HOSTCC in Zaptel was opposite to conventions
> elsewhere, which probably accounts for the confusion. However, there
> still needs to be a way to distinguish between kernel-space and
> user-space compilation, which there currently is not.
> 
> When the bug report hit a brick wall, I did correspond privately with Kevin
> and Russell, but then it all went quiet without the issue being addressed
> at all. I really can't be bothered to pursue it any more - at least I know
> how to fix it on my own systems as required, even if TPTB want it to remain
> wrong in SVN! When I submit a patch, it's not to pursue an agenda of my own,
> but because I want to improve Asterisk/Zaptel for everyone else!
> 
> Of course, if you are cross-compiling, there are potentially three compilers
> to distinguish between: one for kernel-space modules on the target, one for
> user-space programs for the target, and one for build utilities on the host!

There is evengreater confusion because we try to combine three separate
makefile into one:

1. Userspace utilities (such as ztmonitor and ztcfg).
2. Kernel 2.6 modules. Done by recursively calling the kernel build
system. The kernel build system is supposed to ignore most of the
variables. Hopefully.
3. Kernel 2.4 modules.

(1) and (2) are very easy to do and generally well-tested. (3) is
responsible for much of the mess. More mes and confusion comes from
tryin to combine all three of them in the same makefile.

Helper utilities (gendigits, makefw, etc.) are part of the modules
building.

There is an outstanding bug for Debian that certain automated building 
of the zaptel-source package to zaptel-modules fails. After much messing
I came to the conclusion that the only way forward there is to include
all the generated headers in the zaptel-source zaptel.bz2 tarball, and
avoid any use of the hostcc there. And this is even with the assumption 
of kernel 2.6 alone and no 2.4 .

A proper way to solve this is to separate things:
  
  svn co http://svn.digium.com/team/tzafrir/kernelmove

and let me know if you have any problems.

-- 
               Tzafrir Cohen       
icq#16849755                    jabber:[EMAIL PROTECTED]
+972-50-7952406           mailto:[EMAIL PROTECTED]       
http://www.xorcom.com  iax:[EMAIL PROTECTED]/tzafrir
_______________________________________________
--Bandwidth and Colocation provided by Easynews.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Reply via email to