[reSIProcate] resiprocate-devel Digest, Vol 48, Issue 18

Mandeep Ahuja ahuja at aksysnetworks.com
Mon Apr 28 17:06:28 CDT 2008


I guess you forgot to fix at some place:


checking whether make sets $(MAKE)... (cached) yes
checking for mips-linux-ranlib... 
/home/ahuja/aksys/tools/linux/bin/mips_fp_le-ranlib
checking build system type... Invalid configuration 
`/home/ahuja/aksys/tools/linux/bin/mips_fp_le-gcc': machine 
`/home/ahuja/aksys/tools/linux/bin/mips_fp_le' not recognized
configure: error: /bin/sh ../ares/config.sub 
/home/ahuja/aksys/tools/linux/bin/mips_fp_le-gcc failed

Adam Roach wrote:

> The attached patch allows you to set the name of the compiler prefix 
> separate from the name of the platform. Apply this to your tree and 
> verify that it works for you. If it appears to work (or, at least, 
> makes the problem better), I'll go ahead and commit it to the main tree.
>
> /a
>
> On 4/28/08 3:22 PM, Mandeep Ahuja wrote:
>
>> Ok, I hope this will answer the question
>> Output of Ares config options:
>> --build=x86 --host=mips-linux 
>> CC=/home/ahuja/aksys/tools/linux/bin/mips_fp_le-gcc 
>> AR=/home/ahuja/aksys/tools/linux/bin/mips_fp_le-ar rcs 
>> CFLAGS=-D__DEBUG__ -Dassert=ASSERT 
>> -I/home/ahuja/aksys/phoneApp/shared -g -ggdb -O0  
>> RANLIB=/home/ahuja/aksys/tools/linux/bin/mips_fp_le-ranlib
>>
>> Resip Config options are:
>> -C --build=x86 --host=mips-linux 
>> CXX=/home/ahuja/aksys/tools/linux/bin/mips_fp_le-g++ 
>> CXXFLAGS=-D__DEBUG__ -Dassert=ASSERT 
>> -I/home/ahuja/aksys/phoneApp/shared -g -ggdb -O0  
>> --with-ares=/home/ahuja/aksys/phoneApp/libraries/dum/main/sip/contrib/ 
>> LDFLAGS=-L/home/ahuja/aksys/phoneApp/libraries/dum/main/sip/contrib/ares/mips 
>>
>>
>> The above is from resiprocate's first version 0.99 I think. I am 
>> trying to get the latest one running with the mips tools.
>>
>> Thanks for bearing with me Adam.
>>
>> Waiting....
>>
>> Adam Roach wrote:
>>
>>> On 4/28/08 2:00 PM, Mandeep Ahuja wrote:
>>>
>>>> Ok Let me get this right. Lets try where I dont have to use the 
>>>> autotools
>>>
>>>
>>>
>>> I think you misunderstand what I'm asking. Ares uses autotools, so 
>>> we don't have any option here -- we need to be able to run 
>>> ./configure for ares so that ares can be built. I've not worked with 
>>> build environments in which the name of the compiler differed from 
>>> the name of the platform. It's just not a problem I've ever 
>>> encountered, so I don't know how to solve it. Apparently, you *do* 
>>> know how to solve it, because it's the environment you're working in.
>>>
>>> So.
>>>
>>> I think I can fix the problem you're encountering if you can 
>>> clearly, concisely, and accurately answer just one question: With 
>>> your environment, what would you literally type in to the 
>>> commandline to configure ares to build? (In your answer, include the 
>>> output of the configure command so I know what I should expect to see).
>>>
>>> /a
>>>
>>>
>>>
>>>> (might see a problem again future)
>>>> --host=mips-linux
>>>> corss_compile = ~/tools/linux/bin/mips_fp_le-
>>>> the cross compiler is "mips_fp_le"
>>>> Also when i was trying to make 'rutil' it complained about not 
>>>> finding 'ostream' which is in
>>>> ~/tools/linux/target/user/include/g++-3/ directory.
>>>>
>>>> I hope that can be of some help
>>>> Mandeep
>>>>
>>>> Adam Roach wrote:
>>>>
>>>>> I'll see if I can fix this fairly quickly -- what are the exact 
>>>>> options that you would expect to pass to an autotools-generated 
>>>>> ./configure script to set the compiler correctly? Is it simply 
>>>>> "./configure --host=mips_fp_le"? I'll admit that my knowledge of 
>>>>> autotools is a bit meager; but, as far as I know, the only way to 
>>>>> trigger cross compilation with autotools is to pass it the name of 
>>>>> the architecture with the "--host" flag -- and it does the same 
>>>>> thing with it as the resip build system does: it prepends it to 
>>>>> the names of the various gnu toolchain binaries, and tries it to 
>>>>> see whether it works.
>>>>>
>>>>> In other words: I can split the target platform option into two 
>>>>> different options (target platform and cross-compiler prefix) if 
>>>>> that's what you need to suit your purposes, but I don't know 
>>>>> enough about the autotools systems that I need to pass options 
>>>>> into (such as ares) to know what to pass where and how.
>>>>>
>>>>> /a
>>>>>
>>>>> On 4/28/08 12:08 PM, Mandeep Ahuja wrote:
>>>>>
>>>>>> Thanks for the heads up Adam,
>>>>>> Here is the first problem
>>>>>> 1- The architecture-ostype (in my case mips-linux) does not match 
>>>>>> with platform string in the name of my cross compiler 
>>>>>> (mips_fp_le-gcc). I dont plan to change either of the names as I 
>>>>>> have lot going on already. What can I do to get around?
>>>>>> Here is a little sample output
>>>>>> mkdir -p contrib/ares-build.Linux.mips
>>>>>> cd contrib/ares-build.Linux.mips && \
>>>>>>  ../ares/configure   --host=mips-linux
>>>>>> configure: WARNING: If you wanted to set the --build type, don't 
>>>>>> use --host.
>>>>>>    If a cross compiler is detected then cross compile mode will 
>>>>>> be used.
>>>>>> Configuring ares 1.1.2
>>>>>> checking for a BSD-compatible install... /usr/bin/install -c
>>>>>> checking whether build environment is sane... yes
>>>>>> checking for gawk... gawk
>>>>>> checking whether make sets $(MAKE)... yes
>>>>>> checking for mips-linux-strip... no
>>>>>> checking for strip... strip
>>>>>> checking for mips-linux-gcc... no
>>>>>> checking for gcc... gcc
>>>>>> checking for C compiler default output file name... a.out
>>>>>> checking whether the C compiler works... yes
>>>>>> checking whether we are cross compiling... no
>>>>>> checking for suffix of executables...
>>>>>> checking for suffix of object files... o
>>>>>> checking whether we are using the GNU C compiler... yes
>>>>>> checking whether gcc accepts -g... yes
>>>>>> checking for gcc option to accept ANSI C... none needed
>>>>>> checking for style of include used by make... GNU
>>>>>> checking dependency style of gcc... gcc3
>>>>>> checking for a BSD-compatible install... /usr/bin/install -c
>>>>>> checking whether make sets $(MAKE)... (cached) yes
>>>>>> checking for mips-linux-ranlib... no
>>>>>> checking for ranlib... ranlib
>>>>>> checking build system type... i686-pc-linux-gnu
>>>>>> checking host system type... mips-unknown-linux-gnu
>>>>>>
>>>>>> Adam Roach wrote:
>>>>>>
>>>>>>> Mandeep Ahuja wrote:
>>>>>>>
>>>>>>>> I need the autotools scripts that you guys had earlier. 
>>>>>>>> Remember the 'use_autotools.sh' and 'auto_gen.sh'. I can't find 
>>>>>>>> them in the latest checkout. I think last time i checked out 
>>>>>>>> was in 2004. If noone has it will the old one work with the new 
>>>>>>>> revision. I am doing cross-compiling.
>>>>>>>>   
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> The autotools setup never really got completed (at least, not to 
>>>>>>> everyone's satisfaction), and has been pulled out of the 
>>>>>>> repository for a long time now. Even if you can find a copy, I 
>>>>>>> do _not_ suggest you use it. It is highly doubtful that it will 
>>>>>>> work with the current tree (which has been vigorously 
>>>>>>> reorganized since the last time anyone tried autotools) -- at 
>>>>>>> least, not without a lot of effort.
>>>>>>>
>>>>>>> You're not stuck, though. The current build system has pretty 
>>>>>>> good support for cross compilation using the gnu toolchain. Run 
>>>>>>> the configure script (in the root of the project tree); when it 
>>>>>>> asks which toolchain you plan on using, answer "gnu-cross." It 
>>>>>>> will then prompt you for the path to the cross compiler and the 
>>>>>>> name of the platform formatted as architecture-ostype (e.g., 
>>>>>>> "arm-linux"). This platform name must match the platform string 
>>>>>>> in the name of your cross compiler. (i.e., if your cross 
>>>>>>> compiler is called "arm-linux-gcc", then your platform is called 
>>>>>>> "arm-linux").
>>>>>>>
>>>>>>> If you have any problems with the cross-compilation support in 
>>>>>>> the existing build system, post here about it so we can try to 
>>>>>>> make things work better.
>>>>>>>
>>>>>>> /a
>>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>
>>>
>>>
>>
>
>------------------------------------------------------------------------
>
>Index: configure
>===================================================================
>--- configure	(revision 7651)
>+++ configure	(working copy)
>@@ -25,6 +25,7 @@
> VOCAL_COMPILE_TYPE := debug
> VOCAL_CROSS_ROOT := /skiff/local/bin
> CROSS_PLATFORM := arm-linux
>+CROSS_TOOL_PREFIX := arm-linux
> BUILD_SHARED_LIBS := no
> USE_DISTCC := no
> USE_CCACHE := no
>@@ -85,6 +86,8 @@
> #
> #   default     - Value to use by default
> #
>+#   evaldefault - Flag: if set, default is evaluated as perl statement
>+#
> #   validate    - Optional array of allowed values
> #
> #   predicate   - Optional logical test; if false, the user
>@@ -126,6 +129,14 @@
>     option      => 'with-cross-platform',
>   },
>   {
>+    name        => "CROSS_TOOL_PREFIX",
>+    description => "What is the prefix for the cross-compiler binaries?",
>+    default     => "\$config{CROSS_PLATFORM}",
>+    evaldefault => 1,
>+    predicate   => "\$config{VOCAL_TOOLCHAIN_TYPE} =~ /cross/",
>+    option      => 'with-cross-tool-prefix',
>+  },
>+  {
>     name        => "BUILD_SHARED_LIBS",
>     description => "Should the resip libraries be built shared?",
>     default     => "no",
>@@ -281,7 +292,14 @@
> {
>   if (!exists($config{$parameter->{name}}))
>   {
>-    $config{$parameter->{name}} = $parameter->{default};
>+    if ($parameter->{evaldefault})
>+    {
>+      $config{$parameter->{name}} = eval($parameter->{default});
>+    }
>+    else
>+    {
>+      $config{$parameter->{name}} = $parameter->{default};
>+    }
>   }
> 
>   if (exists($parameter->{predicate}) && !eval($parameter->{predicate}))
>Index: build/Makefile.all
>===================================================================
>--- build/Makefile.all	(revision 7651)
>+++ build/Makefile.all	(working copy)
>@@ -86,7 +86,10 @@
> ifeq ($(VOCAL_TOOLCHAIN_TYPE),gnu-cross)
> ARCH            := $(shell echo '$(CROSS_PLATFORM)' | sed 's/-.*//')
> OSTYPE          := $(shell echo '$(CROSS_PLATFORM)' | cut -f3- -d-)
>+ifndef OSTYPE
>+OSTYPE          := $(shell echo '$(CROSS_PLATFORM)' | cut -f2- -d-)
> endif
>+endif
> 
> # Detect and normalize the OSTYPE
> ifndef OSTYPE
>Index: build/Makefile.tools
>===================================================================
>--- build/Makefile.tools	(revision 7651)
>+++ build/Makefile.tools	(working copy)
>@@ -96,13 +96,16 @@
> ifndef CROSS_PLATFORM
> CROSS_PLATFORM = arm-linux
> endif
>+ifndef CROSS_TOOL_PREFIX
>+CROSS_TOOL_PREFIX = arm-linux
>+endif
> 
>-CC		:= $(VOCAL_CROSS_ROOT)/$(CROSS_PLATFORM)-gcc
>-CXX		:= $(VOCAL_CROSS_ROOT)/$(CROSS_PLATFORM)-g++
>+CC		:= $(VOCAL_CROSS_ROOT)/$(CROSS_TOOL_PREFIX)-gcc
>+CXX		:= $(VOCAL_CROSS_ROOT)/$(CROSS_TOOL_PREFIX)-g++
> MKSHLIB		:= $(CC) -fPIC -shared 
> DEP		:= $(CXX) 
> LINKER		:= $(CXX) 
>-AR		:= $(VOCAL_CROSS_ROOT)/$(CROSS_PLATFORM)-ar
>+AR		:= $(VOCAL_CROSS_ROOT)/$(CROSS_TOOL_PREFIX)-ar
> ARFLAGS		= rv
> DFLAGS		= -MM
> DMANGLE		=
>@@ -115,10 +118,16 @@
> LD_STATIC       = -Wl,-Bstatic
> LD_DYNAMIC      = -Wl,-Bdynamic
> ARCH		= arm
>-CONFIGURE_ARGS	+= --host=$(CROSS_PLATFORM)
> DFLAG_INTEGRATED = -MMD
>-RANLIB		= $(VOCAL_CROSS_ROOT)/$(CROSS_PLATFORM)-ranlib
>+RANLIB		= $(VOCAL_CROSS_ROOT)/$(CROSS_TOOL_PREFIX)-ranlib
> 
>+# Pass the relevant parameters down to autotools configure scripts
>+CONFIGURE_ARGS	+= --host=$(CROSS_PLATFORM)
>+CONFIGURE_ARGS	+= CC=$(CC)
>+CONFIGURE_ARGS	+= CXX=$(CXX)
>+CONFIGURE_ARGS	+= AR=$(AR)
>+CONFIGURE_ARGS	+= RANLIB=$(RANLIB)
>+
> Z = $(shell $(CC) -v 2>&1 | perl -ne 'if(/version ([0-9\.]+)/ && ($$1 eq "2.96" || int($$1) > 2) ) {print "1\n";}')
> ifneq ($(Z),1)
> MAKE_SEPARATE_DEPENDENCY = 1
>@@ -134,13 +143,16 @@
> ifndef CROSS_PLATFORM
> CROSS_PLATFORM = arm-unknown-linux-gnu
> endif
>+ifndef CROSS_TOOL_PREFIX
>+CROSS_TOOL_PREFIX = arm-unknown-linux-gnu
>+endif
> 
>-CC		:= $(VOCAL_CROSS_ROOT)/$(CROSS_PLATFORM)-gcc
>-CXX		:= $(VOCAL_CROSS_ROOT)/$(CROSS_PLATFORM)-g++
>+CC		:= $(VOCAL_CROSS_ROOT)/$(CROSS_TOOL_PREFIX)-gcc
>+CXX		:= $(VOCAL_CROSS_ROOT)/$(CROSS_TOOL_PREFIX)-g++
> MKSHLIB		:= $(CC) -fPIC -shared 
> DEP		:= $(CXX) 
> LINKER		:= $(CXX) 
>-AR		:= $(VOCAL_CROSS_ROOT)/$(CROSS_PLATFORM)-ar
>+AR		:= $(VOCAL_CROSS_ROOT)/$(CROSS_TOOL_PREFIX)-ar
> ARFLAGS		= rv
> DFLAGS		= -MM
> DMANGLE		=
>@@ -152,10 +164,18 @@
> COMPILE_SMALL_FLAG = -Os -fno-inline -fno-keep-static-consts
> LD_STATIC       = -Wl,-Bstatic
> LD_DYNAMIC      = -Wl,-Bdynamic
>-CONFIGURE_ARGS	+= --host=$(CROSS_PLATFORM)
> DFLAG_INTEGRATED = -MMD
>-RANLIB		= $(VOCAL_CROSS_ROOT)/$(CROSS_PLATFORM)-ranlib
>+RANLIB		= $(VOCAL_CROSS_ROOT)/$(CROSS_TOOL_PREFIX)-ranlib
> 
>+# Pass the relevant parameters down to autotools configure scripts
>+CONFIGURE_ARGS	+= --host=$(CROSS_PLATFORM)
>+CONFIGURE_ARGS	+= CC=$(CC)
>+CONFIGURE_ARGS	+= CXX=$(CXX)
>+CONFIGURE_ARGS	+= AR=$(AR)
>+CONFIGURE_ARGS	+= RANLIB=$(RANLIB)
>+
>+export CROSS_COMPILE=$(VOCAL_CROSS_ROOT)/$(CROSS_TOOL_PREFIX)-
>+
> Z = $(shell $(CC) -v 2>&1 | perl -ne 'if(/version ([0-9\.]+)/ && ($$1 eq "2.96" || int($$1) > 2) ) {print "1\n";}')
> ifneq ($(Z),1)
> MAKE_SEPARATE_DEPENDENCY = 1
>  
>




More information about the resiprocate-devel mailing list