BusyBox Bug and Patch Tracking
BusyBox
  

Viewing Issue Simple Details Jump to Notes ] View Advanced ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0001994 [uClibc] Architecture Specific major always 01-29-08 04:39 01-30-08 22:50
Reporter asif View Status public  
Assigned To carmelo73
Priority normal Resolution fixed  
Status closed   Product Version
Summary 0001994: phoneME Feature MR2 build fails by using crosstool chain : error: macro "index" requires 2 arguments, but only 1 given
Description im building phoneME feature software for linux_arm by using crosstool chain that uses uclibc, the error details are
--------------------------------------------------------------------------------
 ... FloatSupport_arm.cpp
In file included from ../generated/incls/_FloatSupport_arm.cpp.incl:43,
                 from /home/mr2_src/cldc/src/vm/cpu/arm/FloatSupport_arm.cpp:28:
/home/mr2_src/cldc/src/vm/share/runtime/BufferedFile.hpp:127:14: error: macro "index" requires 2 arguments, but only 1 given
--------------------------------------------------------------------------------
In Buffered file following line is causing the error
--------------------------------------------------------------------------------
  inline jint last_unread_file_pos() {
     return file_pos() - (count() - index());
  }
-------------------------------------------------------------------------------
plz guide me how can i fix this problem.
Additional Information linux kernel version 2.6.20, gcc 4.1.2, arm-linux-uclibc-gcc verion 4.1.2
Attached Files

- Relationships

- Notes
(0003554)
carmelo73
01-29-08 05:10

The problem is caused by the index() macro. You need to disable UCLIBC_SUSV3_LEAGCY_MACRO
 
(0003559)
asif
01-29-08 05:24

hi carmelo,
there are 2 macro in /gcc-4.1.2-uclibc/include/string.h file, should i diable both these options?

# ifdef __UCLIBC_SUSV3_LEGACY__
# ifdef __UCLIBC_SUSV3_LEGACY_MACROS__

thanks
 
(0003564)
carmelo73
01-29-08 06:10

__UCLIBC_SUSV3_LEGACY_MACROS__ is sufficient, but you need to do this
at configuration time, do not change string.h directly.
 
(0003569)
asif
01-29-08 06:34

thanks!

i make changes in string.h and try rebuild, same error, im using below statement to undefine said macro
#undef __UCLIBC_SUSV3_LEGACY_MACROS__
as u told earlier, that this change must be done in configuration file, can u plz tell me how can i do this. Actually i get this cross toolchain from 3rd party.
 
(0003574)
carmelo73
01-29-08 08:42

If you cannot rebuild your uclibc, then ad this into your header BufferedFile.hpp
#ifdef index
#undef index
#endif
 
(0003614)
carmelo73
01-30-08 10:11

Reminder sent to: asif

Hello asif,
have you tried with my latest suggestion ?
 
(0003619)
asif
01-30-08 10:46

hi carmelo,
sorry for the delay, yes i tried that out, it works but the build was not successful and fails at linking stage. below are the details..

linking ../bin/cldc_vm ...
/opt/gcc-4.1.2-uclibc/bin/g++ -o ../bin/cldc_vm jvmspi.o Main_linux.o NativesTable.o ROMImage.o ../bin/libcldc_vmx.a ../bin/libcldc_vmtest.a ../bin/libcldc_vm.a \
/home/asif/output/mr2/arm/pcsl/linux_arm/lib/libpcsl_memory.a /home/asif/output/mr2/arm/pcsl/linux_arm/lib/libpcsl_print.a /home/asif/output/mr2/arm/pcsl/linux_arm/lib/libpcsl_network.a /home/asif/output/mr2/arm/pcsl/linux_arm/lib/libpcsl_string.a /home/asif/output/mr2/arm/pcsl/linux_arm/lib/libpcsl_file.a -Xlinker --no-warn-mismatch -lpthread
/opt/gcc-4.1.2-uclibc/bin/../lib/gcc/arm-linux-uclibc/4.1.2/../../../../arm-linux-uclibc/bin/ld: cannot find /opt/usr/local/arm/gcc-4.1.2-uclibc/lib/libc.so.0
collect2: ld returned 1 exit status

actually it is trying to get libc.so.s0 from a wrong path, i copied the files at that particular file path but it fails at some next stage giving the error details below...

/opt/atmel/gcc-4.1.2-uclibc/bin/../lib/gcc/arm-linux-uclibc/4.1.2/../../../../arm-linux-uclibc/lib/libstdc++.so: undefined reference to `__towupper_l'
/opt/atmel/gcc-4.1.2-uclibc/bin/../lib/gcc/arm-linux-uclibc/4.1.2/../../../../arm-linux-uclibc/lib/libstdc++.so: undefined reference to `__strtold_l'
/opt/atmel/gcc-4.1.2-uclibc/bin/../lib/gcc/arm-linux-uclibc/4.1.2/../../../../arm-linux-uclibc/lib/libstdc++.so: undefined reference to `__strftime_l'
/opt/atmel/gcc-4.1.2-uclibc/bin/../lib/gcc/arm-linux-uclibc/4.1.2/../../../../arm-linux-uclibc/lib/libstdc++.so: undefined reference to `__nl_langinfo_l'
/opt/atmel/gcc-4.1.2-uclibc/bin/../lib/gcc/arm-linux-uclibc/4.1.2/../../../../arm-linux-uclibc/lib/libstdc++.so: undefined reference to `__newlocale'
/opt/atmel/gcc-4.1.2-uclibc/bin/../lib/gcc/arm-linux-uclibc/4.1.2/../../../../arm-linux-uclibc/lib/libstdc++.so: undefined reference to `__freelocale'
/opt/atmel/gcc-4.1.2-uclibc/bin/../lib/gcc/arm-linux-uclibc/4.1.2/../../../../arm-linux-uclibc/lib/libstdc++.so: undefined reference to `__wcsxfrm_l'
/opt/atmel/gcc-4.1.2-uclibc/bin/../lib/gcc/arm-linux-uclibc/4.1.2/../../../../arm-linux-uclibc/lib/libstdc++.so: undefined reference to `__iswctype_l'
/opt/atmel/gcc-4.1.2-uclibc/bin/../lib/gcc/arm-linux-uclibc/4.1.2/../../../../arm-linux-uclibc/lib/libstdc++.so: undefined reference to `__towlower_l'
/opt/atmel/gcc-4.1.2-uclibc/bin/../lib/gcc/arm-linux-uclibc/4.1.2/../../../../arm-linux-uclibc/lib/libstdc++.so: undefined reference to `__strtod_l'
/opt/atmel/gcc-4.1.2-uclibc/bin/../lib/gcc/arm-linux-uclibc/4.1.2/../../../../arm-linux-uclibc/lib/libstdc++.so: undefined reference to `__uselocale'
/opt/atmel/gcc-4.1.2-uclibc/bin/../lib/gcc/arm-linux-uclibc/4.1.2/../../../../arm-linux-uclibc/lib/libstdc++.so: undefined reference to `__strcoll_l'
/opt/atmel/gcc-4.1.2-uclibc/bin/../lib/gcc/arm-linux-uclibc/4.1.2/../../../../arm-linux-uclibc/lib/libstdc++.so: undefined reference to `__wctype_l'
/opt/atmel/gcc-4.1.2-uclibc/bin/../lib/gcc/arm-linux-uclibc/4.1.2/../../../../arm-linux-uclibc/lib/libstdc++.so: undefined reference to `__strxfrm_l'
/opt/atmel/gcc-4.1.2-uclibc/bin/../lib/gcc/arm-linux-uclibc/4.1.2/../../../../arm-linux-uclibc/lib/libstdc++.so: undefined reference to `__wcsftime_l'
/opt/atmel/gcc-4.1.2-uclibc/bin/../lib/gcc/arm-linux-uclibc/4.1.2/../../../../arm-linux-uclibc/lib/libstdc++.so: undefined reference to `__strtof_l'
/opt/atmel/gcc-4.1.2-uclibc/bin/../lib/gcc/arm-linux-uclibc/4.1.2/../../../../arm-linux-uclibc/lib/libstdc++.so: undefined reference to `__wcscoll_l'
/opt/atmel/gcc-4.1.2-uclibc/bin/../lib/gcc/arm-linux-uclibc/4.1.2/../../../../arm-linux-uclibc/lib/libstdc++.so: undefined reference to `__duplocale'

please guide me how can i fix this issue and the possible reason,
thanks alot
asif
 
(0003629)
carmelo73
01-30-08 22:50

I'm closing this bug once the suggested work-around solved your issue.

The error you are now seeing is due to some missing symbols into your uClibc libraries: it seems that the uClibc has been configured without LOCALE support.
Further I think you need X_LOCALE support enabled too.

Now I've not understood if you have uClibc source and you can rebuild them
(if so, that's fine), or you have only binaries.
If the latter, you should ask for a freshen uClibc libraries built with the [X]LOCALE support.
 

- Issue History
Date Modified Username Field Change
01-29-08 04:39 asif New Issue
01-29-08 04:39 asif Status new => assigned
01-29-08 04:39 asif Assigned To  => uClibc
01-29-08 05:08 carmelo73 Assigned To uClibc => carmelo73
01-29-08 05:10 carmelo73 Note Added: 0003554
01-29-08 05:11 carmelo73 Status assigned => resolved
01-29-08 05:11 carmelo73 Resolution open => fixed
01-29-08 05:24 asif Status resolved => feedback
01-29-08 05:24 asif Resolution fixed => reopened
01-29-08 05:24 asif Note Added: 0003559
01-29-08 06:10 carmelo73 Note Added: 0003564
01-29-08 06:34 asif Note Added: 0003569
01-29-08 08:42 carmelo73 Note Added: 0003574
01-30-08 10:11 carmelo73 Note Added: 0003614
01-30-08 10:46 asif Note Added: 0003619
01-30-08 22:50 carmelo73 Status feedback => closed
01-30-08 22:50 carmelo73 Note Added: 0003629
01-30-08 22:50 carmelo73 Resolution reopened => fixed


Copyright © 2000 - 2006 Mantis Group
Powered by Mantis Bugtracker