[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[microblaze-uclinux] Busybox problem
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hi all,
I made a 'cvs update' yesterday in order to experience the port against
2.4.26 kernel.
I noticed two main things:
1) doing a cvs update broke my distro; d'loading a new one in a
different directory avoids compilation problems experienced in the
previous one
I had a 2.4.24 distro
after a cvs update I got compilation errors on sash, version, telnet,
telnetd and other apps
a new copy obtained with cvs co does not show those problems
2) I included busybox modutils and now it tells that insmod cannot be
compiled for this architecutre (microblaze) while with previous version
everything went fine
a diff showed that insmod misses the microblaze portions of code
(attached is the result of diff against old and new snapshots); no diffs
between rmmod.c, lsmod.c and modprobe.c
Anyone had experienced this behaviour?
Best regards
- ---------------------------------------------------------
Roberto Farina
CEFRIEL - Digital Technologies and Operating Systems Unit
Via Fucini, 2 - 20133 MILANO (ITALY)
Phone: +39 02 23954 236
Fax: +39 02 23954 254
~ 178 606 5693
E-mail: roberto.farina@cefriel.it
- ---------------------------------------------------------
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org
iD8DBQFAoOsZzF5ONZxALKMRAle2AJ40X5A4I16XrWaQTeLWJneCtgonWwCgx3Tv
ssPV4BPGakOD9/+IFNXyK+k=
=eEal
-----END PGP SIGNATURE-----
209a210,222
> #if (defined (__microblaze__))
>
> #define BB_USE_SINGLE
>
> #define MATCH_MACHINE(x) ((x) == EM_XILINX_MICROBLAZE)
> #define SHT_RELM SHT_RELA
> #define Elf32_RelM Elf32_Rela
>
> #define ELFCLASSM ELFCLASS32
>
> #endif
>
>
901a915,971
> #elif defined (__microblaze__)
> case R_MICROBLAZE_NONE:
> case R_MICROBLAZE_64_NONE:
> case R_MICROBLAZE_32_SYM_OP_SYM:
> case R_MICROBLAZE_32_PCREL:
> break;
> case R_MICROBLAZE_64_PCREL:
> {
> /* dot is the address of the current instruction.
> * v is the target symbol address.
> * So we need to extract the offset in the code,
> * adding v, then subtrating the current address
> * of this instruction.
> * Ex: "IMM 0xFFFE bralid 0x0000" = "bralid 0xFFFE0000"
> */
>
> /* Get split offset stored in code */
> unsigned int temp = (loc[0] & 0xFFFF) << 16 |
> (loc[1] & 0xFFFF);
>
> /* Adjust relative offset. -4 adjustment required
> * because dot points to the IMM insn, but branch
> * is computed relative to the branch instruction itself.
> */
> temp += v - dot - 4;
>
> /* Store back into code */
> loc[0] = (loc[0] & 0xFFFF0000) | temp >> 16;
> loc[1] = (loc[1] & 0xFFFF0000) | (temp & 0xFFFF);
>
> }
> break;
> case R_MICROBLAZE_32:
> *loc += v;
> break;
> case R_MICROBLAZE_64:
> {
> /* Get split pointer stored in code */
> unsigned int temp1 = (loc[0] & 0xFFFF) << 16 |
> (loc[1] & 0xFFFF);
>
> /* Add reloc offset */
> temp1+=v;
>
> /* Store back into code */
> loc[0] = (loc[0] & 0xFFFF0000) | temp1 >> 16;
> loc[1] = (loc[1] & 0xFFFF0000) | (temp1 & 0xFFFF);
>
> }
> break;
> case R_MICROBLAZE_32_PCREL_LO:
> case R_MICROBLAZE_32_LO:
> case R_MICROBLAZE_SRO32:
> case R_MICROBLAZE_SRW32:
> ret = obj_reloc_unhandled;
> break;
>