BusyBox Bug and Patch Tracking
BusyBox
  

Viewing Issue Simple Details Jump to Notes ] View Advanced ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0001282 [buildroot] Architecture Specific feature always 03-21-07 11:56 08-13-08 10:06
Reporter Franck78 View Status public  
Assigned To buildroot
Priority normal Resolution open  
Status assigned   Product Version
Summary 0001282: ccache
Description Hello,

1) ccache is built at the end of the toolchain (gcc/uclibc/binutils). It serves for nothing (ok I except if you slected other package it may...).

2) the ccache_dir is fixed inside 'toolchain_build_i486' It would be better if the CCACHE_DIR could be setup somewhere else outside 'buildroot'.
Why? In automated procedure constructing distro, buildroot.tar.gz is expanded then configured then built as all other packages making the distro.
It means everytime, buildroot dir is like a virgin.. ;-) No ccache_dir inside.

but if ccache_dir is outside....ok, it will be preserved accross rebuilds
and the final touch would have ccache used for ALL the toolchain construction...!


Adding a new option in 'make menuconfig' is beyond my knowledge of buildroot for now.

Franck
Additional Information
Attached Files  buildroot-custom_ccache_dir.patch [^] (1,299 bytes) 08-13-08 10:03

- Relationships

- Notes
(0002507)
bernhardf
06-25-07 11:02

Although i don't understand a word, i think that this sounds like "Doctor, it hurts when i do.."

Please describe the problem you are facing and suggest what should be done why and how, i shall close this bug otherwise.
 
(0002513)
Franck78
06-25-07 11:38

Ok,
A distro is something more complete than buildroot alone. The buildroot package is only 'one step among others'. The full build can follow some method like lfs (linux from scratch).
Having ccache dir outside of the tree build avoid loosing what have been already compiled when some kind of full rebuild of the distro is performed. In other words, the cachedir is in a safe configurable place.

tchuss.
 
(0002515)
chickenandporn
06-25-07 21:13

It seems the request is:

Add a Config.in/Kconfig option for user-specified CCACHE_DIR defaulting to current value

This is within my ability, but I don't have a ccache build working (I'm broken with MacOSX right now). I will contact submitter.
 
(0002773)
UlfSamuelsson
09-23-07 16:15

ccache will do by default, what you need, but buildroot does:

$(SED) "s,getenv(\"CCACHE_PATH\"),\"$(STAGING_DIR)/usr/bin-ccache\",g" \
    $(CCACHE_DIR1)/execute.c
$(SED) "s,getenv(\"CCACHE_DIR\"),\"$(CCACHE_DIR1)/cache\",g" \
    $(CCACHE_DIR1)/ccache.c

If it did not do that replacement, or replaced with
getenv("BUILDROOT_CCACHE_PATH") and
getenv("BUILDROOT_CCACHE_DIR") you would be OK.

Then the user has to set up these variables outside Buildroot,
so Buildroot needs to set up these to a default.
 
(0002778)
bernhardf
09-24-07 00:49

Using the established CCACHE_PATH and CCACHE_DIR (i.e. dropping our patching those out) and providing menuconfig-entries depending on ccache would IMO be the proper thing to do.

Is anybody willing to attach such a patch (that is tested and works for him/her)?

thanks,
 
(0010404)
wberrier
08-13-08 10:06

This patch works well for me. I leave CCACHE_PATH as is since those should be relative to the toolchain's staging dir.

But I make CCACHE_DIR configurable so I can build a cross compiler for others to use without having to keep the builddir around and accessible to them.
 

- Issue History
Date Modified Username Field Change
03-21-07 11:56 Franck78 New Issue
03-21-07 11:56 Franck78 Status new => assigned
03-21-07 11:56 Franck78 Assigned To  => buildroot
06-25-07 11:02 bernhardf Note Added: 0002507
06-25-07 11:38 Franck78 Note Added: 0002513
06-25-07 21:13 chickenandporn Note Added: 0002515
09-23-07 16:15 UlfSamuelsson Note Added: 0002773
09-24-07 00:49 bernhardf Note Added: 0002778
08-13-08 10:03 wberrier File Added: buildroot-custom_ccache_dir.patch
08-13-08 10:06 wberrier Note Added: 0010404


Copyright © 2000 - 2006 Mantis Group
Powered by Mantis Bugtracker