Nice... I added "export SHELL=/bin/bash" to the beginning of themakefile.defs and that error vanished. I also tested this command in "makefile" and "makefile.checktsetup" but they didn't do the job. After that, the ouput of "make install" is:mahm...@magma:flexus-3.0.0$ make install make -s -r FLEXUS_ROOT=`pwd` -f makefile.install install mahm...@magma:flexus-3.0.0$
is it normal then? // Naderan *Mahmood; ________________________________ From: Jason Zebchuk <[email protected]> To: Mahmood Naderan <[email protected]> Cc: simflex <[email protected]> Sent: Sat, April 17, 2010 10:10:40 PM Subject: Re: skipping GLIBC runtime libraries You should be able to add it to either makefile.def or Makefile. Try Makefile first and let us know which one works. To make it work with your version of gcc, changing required_gcc_version will definitely be necessary. I don't know if anyone has tried simflex with that version, so I'm not sure if it will work. Please keep us updated and let us know whether you have any more difficulties or if it works fine with this change. Jason On 10-04-17 12:55 PM, Mahmood Naderan wrote: mahm...@magma:serengeti$ /usr/bin/g++ -dumpversion >4.4.1 >mahm...@magma:serengeti$ /bin/sh --version >/bin/sh: Illegal option -- > >>If it's not a version of BASH, you might be able to add the line "export >>SHELL=/bin/bash" at the top of the >main makefile to fix your problem. > >You mean the makefile itself or makefile.defs? I also suspected to the the >bash. Since my current shell is bash and as the error says, makefile seeks for >sh. > >I also add "REQUIRED_GCC_VERSION_1=4.4.1" at the beginning of >makefile.checksetup > > >// Naderan *Mahmood; > > > > > ________________________________ From: Jason Zebchuk <[email protected]> >To: Mahmood Naderan <[email protected]> >Cc: simflex <[email protected]> >Sent: Sat, April 17, 2010 6:23:10 PM >Subject: Re: skipping GLIBC runtime libraries > >Sorry, I forgot to ask the most important question. What happens when you try >to run:/usr/bin/g++ -dumpversion directly at the command prompt? > >While it does look like it's simply not finding the executable, there are two >problems: > >First, the line "/bin/sh: [[: not found" shouldn't be there if g++ simply >wasn't found, or wasn't executable. >Second, the line "/usr/bin/g++ is not a valid executable." indicates that the >GCC variable is actually set to the correct value. > >This is why I think it might be a problem with the shell. > >By default, make uses /bin/sh as the shell when executing commands, not >/bin/bash. I believe the makefiles are expecting /bin/sh to actually be the >same as /bin/bash, but this might not be the case. > >Can you check what "/bin/sh --version" is? If it's not a version of BASH, you >might be able to add the line "export SHELL=/bin/bash" at the top of the main >makefile to fix your problem. > > >Jason > > > >On 10-04-17 2:59 AM, Mahmood Naderan wrote: >mahm...@magma:flexus-3.0.0$make --version >>GNU Make 3.81 >>Copyright (C) 2006 Free Software Foundation, Inc. >>This is free software; see the source for copying conditions. >>There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A >>PARTICULAR PURPOSE. >>This program built for i486-pc-linux-gnu >> >>mahm...@magma:flexus-3.0.0$bash --version >>GNU bash, version 4.0.33(1)-release (i486-pc-linux-gnu) >>Copyright (C) 2009 Free Software Foundation, Inc. >>License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> >>This is free software; you are free to change and redistribute it. >>There is NO WARRANTY, to the extent permitted by law. >> >>mahm...@magma:flexus-3.0.0$make -n install >>make -s -r FLEXUS_ROOT=`pwd` -f makefile.install install >>if [[ -x /usr/bin/g++ ]] ; then \ >> GCC_VER=`/usr/bin/g++ -dumpversion` ; \ >> if [[ $GCC_VER == "4.4.1" || $GCC_VER == "" || $GCC_VER == "" ]] ; then \ >> true ; \ >> else \ >> echo "/usr/bin/g++ reports its version as $GCC_VER." ; \ >> echo "Flexus only supports g++ 4.4.1 or or ." ; \ >> echo "You can override this check and force make to continue by adding" >>; \ >> echo "GCC_VERSION_NOCHECK=true to makefile.defs" ; \ >> false ; \ >> fi \ >> else \ >> >>I have also attached the "make -d install". The problem is it can not find my >>gcc or in another word, it doesnot accept /usr/bin/g++ as a compiler. I >>noticed in the documents that Flexus is tested on Fedora and SUSE. >> >>Does anybody install it on Ubuntu? Maybe the scripts are not compatible with >>ubuntu. >> >>// Naderan *Mahmood; >> >> >> >> >> ________________________________ From: Jason Zebchuk <[email protected]> >>To: Mahmood Naderan <[email protected]> >>Cc: [email protected] >>Sent: Sat, April 17, 2010 12:56:44 AM >>Subject: Re: skipping GLIBC runtime libraries >> >>Hi, >> >>I'm not quite sure what's happening. It looks like it's probably either a >>problem with the makefile syntax or bash syntax. >>If you could run the following commands, I might be able to figure out what's >>happening: >> >>make --version >>sh --version >> >>make -n install >>make -d install >> >> >> >>Thanks, >> >>Jason >> >> >> >>On 16/04/2010 1:56 AM, Mahmood Naderan wrote: >>Hi, >>>Thanks for the info however I can not "make install". First the information >>>about the compiler are: >>>mahm...@magma:flexus-3.0.0$ pwd >>>/home/mahmood/flexus-3.0.0 >>>mahm...@magma:flexus-3.0.0$ locate g++ >>>/usr/bin/g++ >>>/usr/bin/g++-4.4 >>>/usr/bin/i486-linux-gnu-g++ >>>/usr/bin/i486-linux-gnu-g++-4.4 >>>/usr/share/cmake-2.8/Modules/Platform/Windows-g++.cmake >>>/usr/share/doc/g++ >>>/usr/share/doc/g++-4.4 >>>/usr/share/doc/gcc-4.4-base/test-summaries/g++.sum.gz >>>/usr/share/man/man1/g++-4.4.1.gz >>>/usr/share/man/man1/g++.1.gz >>>/usr/share/man/man1/i486-linux-gnu-g++-4.4.1.gz >>>/usr/share/man/man1/i486-linux-gnu-g++.1.gz >>>/var/lib/dpkg/info/g++-4.4.list >>>/var/lib/dpkg/info/g++-4.4.md5sums >>>/var/lib/dpkg/info/g++.list >>>/var/lib/dpkg/info/g++.postinst >>>/var/lib/dpkg/info/g++.prerm >>> >>>And the makefile.defs look like this: >>># GCC Compiler Settings >>>GCC_PATH=/usr >>>GCC_BINARY=g++ >>> >>>Now when I run "make install" I get this error: >>>mahm...@magma:flexus-3.0.0$ make install >>>make -s -r FLEXUS_ROOT=`pwd` -f makefile.install install >>>/bin/sh: [[: not found >>>/usr/bin/g++ is not a valid executable. >>>You must set GCC_PATH in makefile.defs to point to g++ 4.1.0 installation >>>path. >>>You must set GCC_BINARY in makefile.defs to the name of the GNU g++ 4.1.0 >>>binary >>>which should be located in GCC_PATH/bin >>>See Flexus quick start guide for instructions on configuring Flexus. >>>make[1]: *** [gcc_version] Error 1 >>>make: *** [install] Error 2 >>> >>>Really I don't understand what is "[[". >>> >>>Thanks, >>>// Naderan *Mahmood; >>> >>> >>> >>> ________________________________ From: Jason Zebchuk <[email protected]> >>>To: Mahmood Naderan <[email protected]> >>>Cc: [email protected] >>>Sent: Fri, April 16, 2010 12:15:40 AM >>>Subject: Re: skipping GLIBC runtime libraries >>> >>>Hi Mahmood, >>> >>>As the getting started guided discusses in the section on "GLIBC >>>Compatibility", Flexus requires a more recent version of GLIBC to run >>>properly. >>> >>>The makefile provided with Flexus will check that the appropriate libraries >>>are in place, and it's possible to remove those checks so that Flexus will >>>compile without installing the glibc libraries. However, if you do this >>>running Simics with Flexus loaded will result in unexplainable segmentation >>>faults. >>> >>>The main problem is that Simics will try to load the GLIBC libraries from >>>its x86-linux/sys/lib/ directory, and the libraries found there are >>>incompatible with the compiler and linker used for Flexus. You can address >>>this in two ways: >>> >>>1. Use make install to copy the correct libraries to that location, or >>>manually copy the correct libraries to that location. >>>2. Remove the libraries from that location (being careful to keep backup >>>copies someplace, e.g., in simics/x86-linux/sys/lib/bak/), and rely on a >>>correct setting of LD_LIBRARY_PATH to make sure Simics finds the correct >>>GLIBC libraries. >>> >>>Depending on how GEMS was compiled doing this *shouldn't* affect GEMS. If >>>GEMS and Flexus have to be compiled with different versions of gcc, then >>>they might require incompatible versions of the GLIBC libraries. If this is >>>the case, you *should* be able to use LD_LIBRARY_PATH when running Simics to >>>ensure that the correct libraries are loaded depending on whether you plan >>>to load GEMS or Flexus modules. >>> >>>Note that the makefile will ONLY affect the GLIBC libraries, it will not >>>affect any of the other library files that might be associated with GEMS. >>> >>> >>>Hope this helps, >>> >>>Jason >>> >>> >>> >>>On 15/04/2010 3:20 PM, Mahmood Naderan wrote: >>>Hi, >>>>Is it possible to skip the section 4 of "Preparing the Build Environment" >>>>in the getting started document? >>>>I have already used GEMS and want to know if I run that part, flexus >>>>libraries replace the GEMS. >>>> >>>>thanks, >>>>// Naderan *Mahmood; >>>> >>> >>> >> >> > >
