How To Install Libgcc 3.4.6 Sol9 Sparc Local
The GCC (or GNU Compiler Collection) is a free and multi-platform compiler system used as a development tool for software written in several programming languages.
In this post we will see how to install gcc on a solaris operating system, taking into account all the pre-requisites and configuration parameters strictly required, so as to elaborate a procedure suitable for both sparc and x86 platforms.
Hence, in the following paragraphs I will not go deeper into details regarding how GCC works or how it can be customized by the final user. If you need any further explanation you can read the official documentation here.
Re: Installs of 'libgcc-3.4.6-sol10-sparc-local.gz' on solaris10 sparc 64-bit abrante Aug 30, 2011 8:27 AM ( in response to 860677 ) My point was that in an earlier post you said that you copied python from another server.
In order to build GCC on Solaris, first you need to install the following packages from the original CD/DVD (if you performed a full installation of the operating system these packages have been all already added):
- SUNWbinutils (GNU binutils)
- SUNWarc (Lint Libraries)
- SUNWgcc (GNU C compiler and runtime libraries)
- SUNWgm4 (GNU m4)
- SUNWgmake (GNU make)
- SUNWhea (SunOS Header Files)
- SUNWlibmr (Math Library Lint Files)
- SUNWlibm (Math & Microtasking Libraries Headers & Lint Files)
Then, the external pre-requisites, downloadable from Unix Packages, are as follows (must be installed with the “pkgadd -d” command):
- libgcc-3.4.6-sol10-platform-local.gz
- libintl-3.4.0-sol10-platform-local.gz
- libiconv-1.14-sol10-platform-local.gz
- tar-1.27.1-sol10-platform-local.gz
- zlib-1.2.8-sol10-platform-local.gz
- binutils-2.23.1-sol10-platform-local.gz
- patch-2.7-sol10-platform-local.gz
where platform can be “sparc” or “x86”.
Furthermore, in order to build GCC (for C, C++, and Objective-C), GMP, MPFR, and MPC libraries are necessary as prerequisites (see GNU doc), so we will be forced to build all of them.
Apple's developer documentation writes in a vague way that a codeless kext can be written to force a specific driver on a matching device, or prevent a generic driver to load for a matching device. Cdc acm comm driver for mac. Debug CDC device on MAC OS X? Hi all, I'm trying to get a simple CDC ACM device working on my MAC. But i can't get Mac OS initialize the driver completely. It is surely something from my firmware but I can't point the problem. Here is the device descriptor as displayed by USB Probe.
The installation process should be carried out with the “root” user:
You should check your root user’s path, appending directories /usr/ccs/bin and /usr/sfw/bin at the end of the default list:
In this way, the following executables will be used during building processes:
- /usr/ccs/bin/m4
- /usr/sfw/bin/gcc (GNU GCC 3.4.3)
- /usr/sfw/bin/gmake (GNU Make 3.82)
Leave the library system’s path as default one:
Also, by typing the command:
you can discover which assembler and linker the system embedded gcc uses while compiling:
- SPARC:
- –prefix=/usr/sfw
- –with-as=/usr/ccs/bin/as –without-gnu-as (Sun assembler)
- –with-ld=/usr/ccs/bin/ld –without-gnu-ld (Sun linker)
- –enable-languages=c,c++ –enable-shared
- x86:
- –prefix=/usr/sfw
- –with-as=/usr/sfw/bin/gas –with-gnu-as (GNU assembler)
- –with-ld=/usr/ccs/bin/ld –without-gnu-ld (Sun linker)
- –enable-languages=c,c++ –enable-shared
So, we are ready to make compilations of source codes, but first it is appropriate to mention what is the right parameter that identifies your Solaris’s architecture when configuring your build:
Create a source directory under /application/gmp-6.0.0a in which gmp’s files have to be unzipped (take care to use the GNU version of the tar command!):
Configure the building process with desired options:
Launch the compiling process, installing all built files (libraries and include files will be
copied in /application/gmp-6.0.0a/lib and /application/gmp-6.0.0a/include):
It’s strongly advised to do a check to verify that libraries work as expected:
In the event that errors occur, once made the necessary corrections, the process can be repeated from the beginning before doing a clean-up:
Create a source directory under /application/mpfr-3.1.2 in which mpfr’s files have to be unzipped (take care to use the GNU version of the tar command!):
Then, download from the MPFR website the latest patches and apply them with “gpatch” command:
This may generate a “Not setting time” warning for the patches file, but you can safely ignore it.
Take care to set the linking stage variable LDFLAGS, referring to the directory in which GMP libraries are stored:
Configure the building process with desired options:
Make sure that the following line pops up:
“checking if gmp.h version and libgmp version are the same… (6.0.0/6.0.0) yes”
Launch the compiling process, installing all built files (libraries and includes will be copied in /application/mpfr-3.1.2/lib and /application/mpfr-3.1.2/include):
It’s strongly advised to do a check to verify that libraries work as expected:
In the event that errors occur, once made the necessary corrections, the process can be repeated from the beginning before doing a clean-up:
Finally, reset any flag you exported before:
Create a source directory under /application/mpc-1.0.2 in which mpc’s files have to be unzipped (take care to use the GNU version of the tar command!):
Take care to set the linking stage variable LDFLAGS, referring to the directory in which GMP and MPFR libraries are stored:
Configure the building process with desired options:
Launch the compiling process, installing all built files (libraries will be copied in /application/mpc-1.0.2/lib):
It’s strongly advised to do a check to verify that libraries work as expected:
In the event that errors occur, once made the necessary corrections, the process can be repeated from the beginning before doing a clean-up:
Finally, reset any flag you exported before:
Create a source directory under /application/gcc-4.9.0 in which gcc’s files have to be unzipped (take care to use the GNU version of the tar command!):
Then, make soft links of previous built libraries:
- /application/gmp-6.0.0a/lib
- /application/mpfr-3.1.2/lib
- /application/mpc-1.0.2/lib
under /application/gcc-4.9.0/lib/math with the following commands:
Configure the building process with desired options (type “configure -help” to see all the available parameters and their defaults):
So as to use:
- /usr/local/bin/as (GNU assembler 2.23)
- /usr/local/bin/ld (GNU linker 2.23)
For further information about each available flag, please read GCC doc.
Finally, launch the compiling process parallelizing the process as much as you can and, if successful, install all built files (libraries will be copied in /application/gcc-4.9.0/lib):
As usually, the process can be repeated from the beginning before doing a clean-up:
To automatically set a runpath for gcc-4.9.0’s libgcc in every binary the new gcc produces (this is necessary when linking programs dynamically against libgcc), you must adjust the specs of the compiler. Hence, type the following:
where architecture can be “amd64” or “sparcv9”.
Then modify the following line from:
to:
where architecture can be “amd64” or “sparcv9”.
Now, you can test your gcc executable (so as to exclude the presence of errors) simply by dumping its version and options:
Apple is ceasing development of its Aperture and iPhoto apps and will replace them both with the previously-announced Photos for OS X app when it ships next year, the company announced Friday. “With the introduction of the new Photos app and iCloud Photo Library. New photo app for mac to replace iphoto. Switch to Photos from iPhoto on Mac. If you didn’t update to OS X 10.10.3 or later, the Photos app is installed automatically when you update your version of macOS. When you first open Photos on your Mac, your photo library is upgraded. The upgraded library is compatible with both Photos and iPhoto (if installed).
Wow, it has been a long journey but we finally nailed it! Let me give you my congratulations for your new software development environment, make good use! 😀