[reSIProcate] resiprocate-devel Digest, Vol 48, Issue 18
Adam Roach
adam at nostrum.com
Wed Apr 30 09:12:24 CDT 2008
Hi. Sorry; I'm not ignoring you -- I've just run out of time for right now.
The problems you're seeing are, indeed, because of the whitespaces. I
don't know why those appear in your build -- I can't reproduce the
problem here. The "WARNING" messages you're seeing are also due to the
whitespaces. For historical reasons, autotools configure takes any
parameters that are neither switches nor assignments and presumes that
they specify all three of build, host, and target. This syntax is
deprecated, and present only for compatibility. So, once you figure out
how to eliminate the whitespaces, those warnings will go away.
It will be several days (if not weeks) before I can take a serious look
at this problem again. Sorry that we weren't able to get things working
very easily.
/a
Mandeep Ahuja wrote:
> Hey adam,
> thanks for all your help. I am close. Except one problem
> ../ares/configure --prefix=/usr/local --host=mips-linux CC=
> /home/ahuja/aksys/tools/linux/bin/mips_fp_le-gcc CXX=
> /home/ahuja/aksys/tools/linux/bin/mips_fp_le-g++
> AR=/home/ahuja/aksys/tools/linux/bin/mips_fp_le-ar
> RANLIB=/home/ahuja/aksys/tools/linux/bin/mips_fp_le-ranlib
>
> You see the white space in CC= /home and in CXX= /home, that is
> causing trouble.
>
> Also, In this warning
> configure: WARNING: you should use --build, --host, --target <-----
> How do I setup the target?
> configure: WARNING: invalid host type:
> /home/ahuja/aksys/tools/linux/bin/mips_fp_le-gcc <-- I think this is
> frm the white space
>
> I am using shared Libraries yes and distc yes
>
> thanks
> Mandeep
>
>
> 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