On Mon, 2010-05-17 at 00:10 +0400, Alexey Loukianov wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> Good day.

alike

> 
> I've been using OpenWRT build system for making specialized firmwares for
> various D-Link routers for about a year. The need to build up a fresh firmware
> arises from time to time so it is common for me to get into a situation when
> checked out local working copy lags several months behind trunk's HEAD.
> 
> Common problem that usually arises in process of bumping working copy to the
> current HEAD is the task of keeping .config file up with the introduced 
> changes.
> Somewhere in the past I've been told by somebody on the dd-wrt forums that the
> correct procedure of "upgrading" config file to the newer SVN revision is to 
> use
> the sequence like this:
> 
> # make clean
> # svn update
> # make oldconfig
> 
> Is this the right way? How to cope with updates to the packages from OpenWRT
> feeds? OpenWRT is ever-changing project, and it is perfectly normal to switch
> kernel versions on a regular basis. Will the config file updated using "make
> oldconfig" automatically follow the changes in the default versions of the
> kernel/gcc/uClibc for the selected target platform?

<make oldconfig> drops out obsolete parameters and will ask you how to
handle new ones (n/y/m).
kernel-parameters are not part of the file - the equivalent call would
be <make kernel_oldconfig> (saved in target/linux/*/config-*).

> 
> Second thing that seems unclear to me is the feeds management system.
> "make package/symlinks" approach was told to be obsolete on a some page in the
> "new" wiki, and it is now recommended to use the "feeds" script instead.
> 
> As far as my understanding is correct this script basically does three sorts 
> of
> things:
> 1. svn checkout/update for the feeds defined in feeds.conf when called with
> "update" as the second argument. This operation does not create/update any of
> the symlinks in the packages/feeds/*.
> 2. List the packages in the checked out revision of the feed or search checked
> out feeds for a specified package (list/search as second argument).
> 3. Create/remove symlinks in packages/feeds/* when called with 
> install/uninstall
> as the second argument.
> 
> Thus, to correctly update and install all packages in all feeds the command
> sequence might look like this:
> 
> # ./scripts/feeds uninstall -a
> # ./scripts/feeds update -a
> # ./scripts/feeds install -a
> 
> Am I right? Is it required to do "make oldconfig" afterwards?

That's the way. This will update the feeds from the corresponding
repositories listed in feeds.conf / feeds.conf.default respectively.

As said before, <make oldconfig> will now drop obsolete entries and ask
you what to do with new ones (=new packages).

> 
> Third question is concerning the possibility of the so-called "parallel 
> build".
> Accordingly to the recent SVN logs, there were some commits that fix a number 
> of
> issues related to the parallel build. Most notably, one of the log entries
> instructs user to modify 21st line of the include/host-build.mk to look like
> "override MAKEFLAGS=$(MAKE_JOBS)" in order to enable parallel build for the
> target toolchain. Does it mean that it is safe now to use something like "make
> - -j6" on milticore CPU host in order to gain huge speedups of the build 
> process?
> Will it work normally when used in conjunction with the host CCACHE?

It _should_ work, however I still experience raise-conditions because of
e.g. missing/wrong dependencies.
For production use I do not recommend parallel builds, as binaries _may_
differ.

> 
> Another rumor that I've been told by some man on the forums was that the 
> correct
> way to made OpenWRT build proceed with a parallel build is to head on to the
> "Advanced development options" in the menuconfig and specify the desired 
> number
> of the make jobs there (instead of using "make -jN"). As far as I can see,
> there's no appropriate option for specifying make job count in that submenu
> today. Was the advice wrong or am I missing something?

Just use "make -jX", however be aware that OpenWrt will not pass this
option to the corresponding builds of single packages. It will "just"
parallelize the build of multiple openwrt-packages, not building a
single package itself.

> 
> Thanks in advance for the answers.

You're welcome

mirko

> 
> - -- 
> Best regards,
> Alexey Loukianov                          mailto:mooro...@mail.ru
> System Engineer,                            Mob.:+7(926)218-1320
> *nix Specialist
> 
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.7 (GNU/Linux)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
> 
> iQEVAwUBS/BROfB9BOdTkBULAQIM+QgAneY8fHcAiFvrYISVpKtVRI7yJp+pILQj
> 1Fq2NPGrFwmgeYS6ZCWkTL/LbIEhVr4w5rNdfJ0SkayUMDPCoZT6Zgk+kC/A1IqJ
> 0AWq4pK8Iyekt029s48MsQFUr6dKQX0r0ceq7Wk2/dMfI7X3I7EoyDkuhm6bmuse
> vN2XevSLdVFd5eIq+fEyd5eOgTJvzYc4UyLDLuOYDBI2aQFmt2aiYGYw85xqSh2p
> v/eJMdx2j/euQTjaRe6qbU4rgc0UE+iHe3GkCXjUyFHrgnArL6dzjsy2yYzXDql7
> KS+Rged9uoIJKKRc/D26mUq1KwEB03b6lMYiyBCpbulHWPxo6ceqZw==
> =6jlY
> -----END PGP SIGNATURE-----
> _______________________________________________
> openwrt-devel mailing list
> openwrt-devel@lists.openwrt.org
> https://lists.openwrt.org/mailman/listinfo/openwrt-devel




-- 
This email address is used for mailinglist purposes only.
Non-mailinglist emails will be dropped automatically.
If you want to get in contact with me personally, please mail to:
mirko.vogt <at> nanl <dot> de

_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to