This is the mail archive of the ecos-discuss@sourceware.org mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Re: h8300 cannot find libgcc.a


Hello,

I've studied the GCC3.3.2's patch for building h8300 toolchains and I've learned its mechanism
and also I am encountered with new question.
Would you please teach me.


When gcc-configuration makes libgcc.a,double must be 64 bits,and when making h8300-elf-gcc double must be 32 bits.
In order to distinguish two targets the patch exhanges next lines.


-#define LONG_LONG_TYPE_SIZE 32
+#define LONG_LONG_TYPE_SIZE (TARGET_INT32 ? 64 : 32)
-#define DOUBLE_TYPE_SIZE 32
+#define DOUBLE_TYPE_SIZE (TARGET_INT32 ? 64 : 32)

And there were next codes in GCC3.3.2's /gcc/config/h8300/h8300.h.

--- from GCC3.3.2's /gcc/config/h8300/h8300.h
/* Run-time compilation parameters selecting different hardware subsets.  */

extern int target_flags;

/* Masks for the -m switches.  */
#define MASK_H8300S  0x00000001
#define MASK_MAC  0x00000002
#define MASK_INT32  0x00000008
#define MASK_ADDRESSES  0x00000040
#define MASK_QUICKCALL  0x00000080
#define MASK_SLOWBYTE  0x00000100
#define MASK_NORMAL_MODE  0x00000200
#define MASK_RELAX  0x00000400
#define MASK_RTL_DUMP  0x00000800
#define MASK_H8300H  0x00001000
#define MASK_ALIGN_300  0x00002000

/* Macros used in the machine description to test the flags. */

/* Make int's 32 bits.  */
#define TARGET_INT32 (target_flags & MASK_INT32)

/* Dump recorded insn lengths into the output file.  This helps debug the
  md file.  */
#define TARGET_ADDRESSES (target_flags & MASK_ADDRESSES)

/* Pass the first few arguments in registers.  */
#define TARGET_QUICKCALL (target_flags & MASK_QUICKCALL)

/* Pretend byte accesses are slow.  */
#define TARGET_SLOWBYTE (target_flags & MASK_SLOWBYTE)

/* Dump each assembler insn's rtl into the output file.
  This is for debugging the compiler only.  */
#define TARGET_RTL_DUMP (target_flags & MASK_RTL_DUMP)
---

But there are not above codes in GCC4.4.0's /gcc/config/h8300/h8300.h !!!

I tentatively added above codes in GCC4.4.0's /gcc/config/h8300/h8300.h and applied patch codes and tried to configure gcc.
But the result was the same error.
/opt/ecos/ecos-3.0/packages/language/c/libm/v3_0/src/mathincl/fdlibm.h:78:3: error: #error IEEE-style 64-bit doubles are required to use the math library


Apparently in GCC4.4.0 or newer GCC,target_flags does not function as the same as in GCC3.3.2.

Now the question is what mechanism is used in newer GCC versions to configure h8300 toolchains.
How should I distinguish targets, libgcc.a and h8300-elf-gcc, in configuring ?


Would you please enlighten me ?

m mariga


-- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]