LinuxQuestions.org
Latest LQ Deal: Latest LQ Deals
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware
User Name
Password
Slackware This Forum is for the discussion of Slackware Linux.

Notices


Reply
  Search this Thread
Old 11-18-2007, 04:42 AM   #16
H_TeXMeX_H
LQ Guru
 
Registered: Oct 2005
Location: $RANDOM
Distribution: slackware64
Posts: 12,928

Original Poster
Blog Entries: 2

Rep: Reputation: 1301Reputation: 1301Reputation: 1301Reputation: 1301Reputation: 1301Reputation: 1301Reputation: 1301Reputation: 1301Reputation: 1301Reputation: 1301

Thanks. Really, I keep only one version of cmake around, the one compiled with gcc-3.x. I have no other use for cmake. But gcc-3.x is very useful to have around. I recently had to compile qemu, and it requires gcc-3.x.
 
Old 11-18-2007, 09:07 AM   #17
gnashley
Amigo developer
 
Registered: Dec 2003
Location: Germany
Distribution: Slackware
Posts: 4,928

Rep: Reputation: 612Reputation: 612Reputation: 612Reputation: 612Reputation: 612Reputation: 612
I keep 2.95.3, 3.2.3, 3.3.6 around since I have a love affair with old GTK-1.2 software. And I'm still running Slack-11.0 for daily use(I also have a love affair with kernel-2.4.xx). Since Slack-11.0 uses gcc-3.4.6 as standard and I already have gcc-3.3.6 setup in another path, I compiled cmake to use gcc-3.3.6 to simulate what would happen on Slack-12.0 using gcc-3.4.6 in a side path. Does that even make sense?
Anyway, I just wanted to let you know about passing the -DCMAKE_INSTALL_PREFIX in case you want it when compiling manually. This is what I've made src2pkg do. Passing other defines doesn't seem to work so easily with src2pkg, but if you are using cmake manually you can easily pass other stuff like CMAKE_C_FLAGS.
 
Old 01-21-2008, 12:28 PM   #18
Shingoshi
Member
 
Registered: Oct 2006
Location: Cochise County, Arizona
Distribution: Gentoo-AMD64 / Slackware64-Current
Posts: 474
Blog Entries: 28

Rep: Reputation: 34
Quote:
Originally Posted by gnashley View Post
I keep 2.95.3, 3.2.3, 3.3.6 around since I have a love affair with old GTK-1.2 software. And I'm still running Slack-11.0 for daily use(I also have a love affair with kernel-2.4.xx). Since Slack-11.0 uses gcc-3.4.6 as standard and I already have gcc-3.3.6 setup in another path, I compiled cmake to use gcc-3.3.6 to simulate what would happen on Slack-12.0 using gcc-3.4.6 in a side path. Does that even make sense?
Anyway, I just wanted to let you know about passing the -DCMAKE_INSTALL_PREFIX in case you want it when compiling manually. This is what I've made src2pkg do. Passing other defines doesn't seem to work so easily with src2pkg, but if you are using cmake manually you can easily pass other stuff like CMAKE_C_FLAGS.
Gnashley,
Now this is exactly the point that I was wanting to ask. If I put all of the various versions of gcc (or any other program source) into subdirectories of gcc (or any other program source you'd want to do this with), will all of those sources be automatically built and installed as a single package? If not, might you consider doing something with src2pkg, where the following occurs.

User manually does the following.
1. Untar the main source file.
2. Copy and untar the subordinate source(s) into the master directory.
3. Tar the collected sources into one single file.
4. Rename the new tarfile to reflect it collective nature: ie. tarname-collection.tar.gz
5. Now run src2pkg on the new tarfile.

It would be nice in keeping with this thinking, if src2pkg would automatically (as in a case with gcc) rename each of the enclosed sources $name$version (where the periods are completely removed from the version string). This would then create one large package as follows.

I AM ONLY USING GCC AS AN EXAMPLE!! So no one try raising issues about how this isn't the normal or proper way to do things. I am only using gcc as an example, because it too frequently is required in multiple versions to compile other software, as already noted here.

Depending on how you chose to do this.
1. gcc-collection would be the package name with a date as the version string.
2. Each of the gcc versions would then have gcc295, gcc323, gcc336 etc as their file names. Their libraries would show the same thing.
3. This system would also allow for the cross-compilation for multiple architectures as well. Since each architecture could be installed as follows:
>> gcc-collection-$date/
>> gcc-collection-$date/$arch/
>> gcc-collection-$date/$arch/2.95
>> gcc-collection-$date/$arch/3.2.3
>> gcc-collection-$date/$arch/3.3.6
>> gcc-collection-$date/$arch/4.1.2
>> gcc-collection-$date/$arch/4.2.2
Using a date as the version seems the most sensible thing to do. Or a revision number can be used if built from cvs or svn.

Yes, this would indeed create very large packages. But as I said, this is ONLY an example. There are many other (smaller) sources which can be combined into a single binary. Some of these are so small, that even when built for every possible arch, they would still be small.

I had been thinking about this for some time now. And came across it when I successfully compiled the Emboss package. The instructions were given for how to build all architectures in ONE single compilation, and installed as a single package. This is something I very much need to do, as I am building a true multiarch single-package system, for every arch included in the kernel.

1.2.1 Compiling For Multiple Architectures
====================================
You can compile the package for more than one kind of computer at the
same time, by placing the object files for each architecture in their
own directory. To do this, you must use a version of `make' that
supports the `VPATH' variable, such as GNU `make'. `cd' to the
directory where you want the object files and executables to go and run
the `configure' script. `configure' automatically checks for the
source code in the directory that `configure' is in and in `..'.

And this from the multiarch build for Bash:
====================================
Alternatively, if your system supports symbolic links, you can use the `support/mkclone' script to create a build tree which has symbolic links back to each file in the source directory. Here's an example that creates a build directory in the current directory from a source directory `/usr/gnu/src/bash-2.0':

bash /usr/gnu/src/bash-2.0/support/mkclone -s /usr/gnu/src/bash-2.0 .


So if this is something that can be accomplished with src2pkg, I for one would like to see it done. I am also interested in whether or not SCons could be used as the build mechanism for src2pkg. If it is an advanced as described, it might be a better candidate.

Xavian-Anderson Macpherson
Shingoshi

Last edited by Shingoshi; 01-21-2008 at 12:38 PM.
 
Old 01-23-2008, 10:51 AM   #19
Shingoshi
Member
 
Registered: Oct 2006
Location: Cochise County, Arizona
Distribution: Gentoo-AMD64 / Slackware64-Current
Posts: 474
Blog Entries: 28

Rep: Reputation: 34
I just wanted to report in.

I wanted everyone here to know that I have successfully compiled gcc43-4.3.4.3 in a single pass without any apparent errors. The package size is 91,121K. That's large. But it does include everything in gcc. So now that I have succeeded there, I will try and do a comprehensive cross-compile, including every architecture supported by the kernel. From there, I will move on to building multiple versions in a single package. Today, I will also be searching for a package similar to rpmdelta (SuSE), which creates diffs between two different versions of an rpm. Hopefully, one of the BSD's makes something like what I'm looking for (pkgdelta; or similar name). I will report in on my further advances.

Shingoshi

This package is just amazing. I don't think anything could have been left out. I should never have to worry about something missing during any attempted compilations in the future. WOW!!

Last edited by Shingoshi; 01-23-2008 at 11:26 AM.
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
gcc versions compatibility with kernel versions.. mahesh_manthapuri SUSE / openSUSE 1 03-22-2006 12:28 AM
Concurrent installation of mySQL & postgreSQL theNbomr Linux - Software 1 02-27-2006 02:31 PM
switching between gcc versions DrAMac Debian 2 08-30-2005 05:21 PM
multiple versions of gcc Avatar33 Linux - General 3 02-22-2005 02:06 PM
Can you have two different versions of gcc on the same system? the theorist Linux - Software 1 02-23-2004 04:53 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware

All times are GMT -5. The time now is 01:45 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration