public inbox for ecos-discuss@sourceware.org
 help / color / mirror / Atom feed
* [ECOS] linux .rel.got problem
@ 1999-06-21  5:53 Andrew Lunn
  1999-06-21  6:10 ` Jesper Skov
  1999-06-28 13:07 ` Jamie Guinan
  0 siblings, 2 replies; 9+ messages in thread
From: Andrew Lunn @ 1999-06-21  5:53 UTC (permalink / raw)
  To: ecos-discuss

Hi folks

I've run into one of the known problems with the synthetic linux
system. The problem is with the .rel.got section, problem #18956. 

The workaround is "Add a .rel.got linker-defined memory section to the
memory layout when building eCos under these conditions". Could
someone turn this in plainer English, ive no idea what to do! Im
behind a firewall so cannot get at the CVS repositry. 

Also, when new problems and workarounds and found, would it be
possible to send a message to ecos-discuss? Thats probably a better
way to keep up to date with what is going on, and the archives of the
emails are much easier to get at from behind a firewall.

	Thanks
		Andrew



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [ECOS] linux .rel.got problem
  1999-06-21  5:53 [ECOS] linux .rel.got problem Andrew Lunn
@ 1999-06-21  6:10 ` Jesper Skov
  1999-06-21  7:11   ` Jesper Skov
  1999-06-28 13:07 ` Jamie Guinan
  1 sibling, 1 reply; 9+ messages in thread
From: Jesper Skov @ 1999-06-21  6:10 UTC (permalink / raw)
  To: Andrew Lunn; +Cc: ecos-discuss

>>>>> "Andrew" == Andrew Lunn <lunn@ma.tech.ascom.ch> writes:

Andrew> Hi folks I've run into one of the known problems with the
Andrew> synthetic linux system. The problem is with the .rel.got
Andrew> section, problem #18956.

Andrew> The workaround is "Add a .rel.got linker-defined memory
Andrew> section to the memory layout when building eCos under these
Andrew> conditions". Could someone turn this in plainer English, ive
Andrew> no idea what to do! Im behind a firewall so cannot get at the
Andrew> CVS repositry.

It's quite plain... but it may not be proper English :)

Below's the patch used to fix the PR:

Jesper


# cvs -q diff -D"05/14/1999 11:49:21 UTC" -D"05/14/1999 11:51:21 UTC" -u
Index: ChangeLog
===================================================================
RCS file: /cvs/ecc/ecc/hal/i386/arch/current/ChangeLog,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -r1.34 -r1.35
--- ChangeLog	1999/05/13 18:00:33	1.34
+++ ChangeLog	1999/05/14 11:50:21	1.35
@@ -1,3 +1,7 @@
+1999-05-14  Jesper Skov  <jskov@cygnus.co.uk>
+        PR 18956
+	* src/i386.ld: Fixed problem with rel_got.
+
 1999-05-13  Hugo Tyson  <hmt@cygnus.co.uk>
 
 	* include/hal_arch.h (HAL_THREAD_INIT_CONTEXT): Align stack
Index: src/i386.ld
===================================================================
RCS file: /cvs/ecc/ecc/hal/i386/arch/current/src/i386.ld,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- src/i386.ld	1999/04/08 14:04:33	1.12
+++ src/i386.ld	1999/05/14 11:50:22	1.13
@@ -90,10 +90,9 @@
       _EXCEPT_END_ = ABSOLUTE(.);}                                      \
     > _region_
 
-#define SECTION_rel__got(_region_, _vma_, _lma_)        \
+#define SECTION_rel_got(_region_, _vma_, _lma_)        \
     .rel.got _vma_ : _lma_                                            \
-    { FORCE_OUTPUT;                           \
-      *(.rel.got)      }                                        \
+    { *(.rel.got)      }                                        \
     > _region_
 
 #define SECTION_data(_region_, _vma_, _lma_)                       \

# cvs -q diff -D"05/14/1999 11:49:24 UTC" -D"05/14/1999 11:51:24 UTC" -u
Index: ChangeLog
===================================================================
RCS file: /cvs/ecc/ecc/hal/i386/linux/current/ChangeLog,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -r1.24 -r1.25
--- ChangeLog	1999/04/08 14:04:34	1.24
+++ ChangeLog	1999/05/14 11:50:24	1.25
@@ -1,3 +1,9 @@
+1999-05-14  Jesper Skov  <jskov@cygnus.co.uk>
+        PR 18956
+	* include/pkgconf/mlt_i386_linux_ram.mlt: 
+	* include/pkgconf/mlt_i386_linux_ram.ldi: 
+	Fixed problem with rel_got.
+
 1999-04-08  John Dallaway  <jld@cygnus.co.uk>
 
 	* include/pkgconf/mlt_*.*: Use double underscore substitution
Index: include/pkgconf/mlt_i386_linux_ram.ldi
===================================================================
RCS file: /cvs/ecc/ecc/hal/i386/linux/current/include/pkgconf/mlt_i386_linux_ram.ldi,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- include/pkgconf/mlt_i386_linux_ram.ldi	1999/04/08 14:04:35	1.5
+++ include/pkgconf/mlt_i386_linux_ram.ldi	1999/05/14 11:50:25	1.6
@@ -31,11 +31,6 @@
     ram : ORIGIN = 0x00000000, LENGTH = 0x800000
 }
 
-// The rel__got section doesn't result in any output but the linker
-// complains if it is not present. It is necessary when compiling
-// with CYGIMP_LIBC_MALLOC_CXX_DELETE_CALLS_FREE=true but causes
-// problems with BFD when this option is false.
-
 SECTIONS
 {
     SECTIONS_BEGIN
@@ -46,7 +41,7 @@
     SECTION_rodata (ram, ALIGN (0x8), LMA_EQ_VMA)
     SECTION_fixup (ram, ALIGN (0x4), LMA_EQ_VMA)
     SECTION_gcc_except_table (ram, ALIGN (0x1), LMA_EQ_VMA)
-//    SECTION_rel__got (ram, ALIGN (0x1), LMA_EQ_VMA)
+    SECTION_rel_got (ram, ALIGN (0x1), LMA_EQ_VMA)
     SECTION_data (ram, ALIGN (0x8), LMA_EQ_VMA)
     SECTION_sbss (ram, ALIGN (0x4), LMA_EQ_VMA)
     SECTION_bss (ram, ALIGN (0x10), LMA_EQ_VMA)
Index: include/pkgconf/mlt_i386_linux_ram.mlt
===================================================================
RCS file: /cvs/ecc/ecc/hal/i386/linux/current/include/pkgconf/mlt_i386_linux_ram.mlt,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- include/pkgconf/mlt_i386_linux_ram.mlt	1999/03/04 09:48:58	1.1
+++ include/pkgconf/mlt_i386_linux_ram.mlt	1999/05/14 11:50:26	1.2
@@ -6,7 +6,8 @@
 section rodata1 0 8 0 1 0 1 0 1 rodata rodata !
 section rodata 0 8 0 1 0 1 0 1 fixup fixup !
 section fixup 0 4 0 1 0 1 0 1 gcc_except_table gcc_except_table !
-section gcc_except_table 0 1 0 1 0 1 0 1 data data !
+section gcc_except_table 0 1 0 1 0 1 0 1 rel_got rel_got !
+section rel_got 0 1 0 1 0 1 0 1 data data !
 section data 0 8 0 1 0 1 0 1 sbss sbss !
 section sbss 0 4 0 1 0 1 0 1 bss bss !
 section bss 0 10 0 1 0 0 0 0 !

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [ECOS] linux .rel.got problem
  1999-06-21  6:10 ` Jesper Skov
@ 1999-06-21  7:11   ` Jesper Skov
  1999-06-28 22:48     ` Jamie Guinan
  0 siblings, 1 reply; 9+ messages in thread
From: Jesper Skov @ 1999-06-21  7:11 UTC (permalink / raw)
  To: lunn, ecos-discuss

>>>>> "Jesper" == Jesper Skov <jskov@cygnus.co.uk> writes:
Jesper> Below's the patch used to fix the PR:

Which in turn introduces a problem for the ConfigTool. 

If you use the ConfigTool, you need to change the name of "rel_got"
section (in all the files) to "rel__got". 

The extra underbar is used to encode the '.' of the original section
name ("rel.got").

Sorry about that.

Jesper

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [ECOS] linux .rel.got problem
  1999-06-21  5:53 [ECOS] linux .rel.got problem Andrew Lunn
  1999-06-21  6:10 ` Jesper Skov
@ 1999-06-28 13:07 ` Jamie Guinan
  1999-06-28 14:00   ` Jonathan Larmour
  1 sibling, 1 reply; 9+ messages in thread
From: Jamie Guinan @ 1999-06-28 13:07 UTC (permalink / raw)
  To: ecos-discuss

On Mon, 21 Jun 1999, Andrew Lunn wrote:

> Hi folks
> 
> I've run into one of the known problems with the synthetic linux
> system. The problem is with the .rel.got section, problem #18956. 

Hello,

I've also bumped into this one.  It appeared at link time
when I introduced an "fopen()" call to my sources.

Before I apply the patch from CVS (thanks Jesper), is fopen()/fgets()
implemented for normal files under the Linux synthetic target?

If not, would a simple "linux filesystem driver" be worth spending
some time on?

Thanks,
-Jamie

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [ECOS] linux .rel.got problem
  1999-06-28 13:07 ` Jamie Guinan
@ 1999-06-28 14:00   ` Jonathan Larmour
  1999-06-30 10:49     ` [ECOS] Linux Filesystem Access Jamie Guinan
  0 siblings, 1 reply; 9+ messages in thread
From: Jonathan Larmour @ 1999-06-28 14:00 UTC (permalink / raw)
  To: ecos-discuss

In article < Pine.LNX.3.96.990628160234.16277A-100000@newt.home.net >,
Jamie Guinan  <guinan@bluebutton.com> wrote:
>
>Before I apply the patch from CVS (thanks Jesper), is fopen()/fgets()
>implemented for normal files under the Linux synthetic target?

Fraid not.

>If not, would a simple "linux filesystem driver" be worth spending
>some time on?

We do have plans for an all-singing all-dancing configurable pluggable
virtual file system infrastructure :-), but it'll take some time to sort
out. Expect an RFC in the not-too-distant future. But if you want to hack
something quick and dirty up, feel free!

If you surround it by ifdefs for now, that'll make it nice and easy to find.

Jifl
-- 
Cygnus Solutions, 35 Cambridge Place, Cambridge, UK.  Tel: +44 (1223) 728762
"I used to have an open mind but || Get yer free open source RTOS's here...
 my brains kept falling out."    || http://sourceware.cygnus.com/ecos
Help fight spam! http://spam.abuse.net/  These opinions are all my own fault

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [ECOS] linux .rel.got problem
  1999-06-21  7:11   ` Jesper Skov
@ 1999-06-28 22:48     ` Jamie Guinan
  1999-06-29  0:26       ` Jesper Skov
  0 siblings, 1 reply; 9+ messages in thread
From: Jamie Guinan @ 1999-06-28 22:48 UTC (permalink / raw)
  To: ecos-discuss

On 21 Jun 1999, Jesper Skov wrote:

> >>>>> "Jesper" == Jesper Skov <jskov@cygnus.co.uk> writes:
> Jesper> Below's the patch used to fix the PR:
> 
> Which in turn introduces a problem for the ConfigTool. 
> 
> If you use the ConfigTool, you need to change the name of "rel_got"
> section (in all the files) to "rel__got". 

Does that apply to running pkgconf.tcl manually as well? (Linux host).

And a more general question: after applying your patches,
is it then necessary to run pkgconf.tcl to generate a new
<build>/install/lib/target.ld ?

Thanks,
-Jamie

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [ECOS] linux .rel.got problem
  1999-06-28 22:48     ` Jamie Guinan
@ 1999-06-29  0:26       ` Jesper Skov
  0 siblings, 0 replies; 9+ messages in thread
From: Jesper Skov @ 1999-06-29  0:26 UTC (permalink / raw)
  To: guinan; +Cc: ecos-discuss

>>>>> "Jamie" == Jamie Guinan <guinan@bluebutton.com> writes:

Jamie> On 21 Jun 1999, Jesper Skov wrote:
>> >>>>> "Jesper" == Jesper Skov <jskov@cygnus.co.uk> writes:
Jesper> Below's the patch used to fix the PR:
>>  Which in turn introduces a problem for the ConfigTool.
>> 
>> If you use the ConfigTool, you need to change the name of "rel_got"
>> section (in all the files) to "rel__got".

Jamie> Does that apply to running pkgconf.tcl manually as well? (Linux
Jamie> host).

No. As long as the naming is consistent it should be OK on Linux.

Jamie> And a more general question: after applying your patches, is it
Jamie> then necessary to run pkgconf.tcl to generate a new
Jamie> <build>/install/lib/target.ld ?

There's a dependency on the i386/arch script so it should be picked up
automatically. But you need to either rerun pkgconf or copy the new
mlt_i386_linux_ram.ldi to your build tree by hand.

Jesper

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [ECOS] Linux Filesystem Access
  1999-06-28 14:00   ` Jonathan Larmour
@ 1999-06-30 10:49     ` Jamie Guinan
  1999-06-30 11:55       ` [ECOS] " Jamie Guinan
  0 siblings, 1 reply; 9+ messages in thread
From: Jamie Guinan @ 1999-06-30 10:49 UTC (permalink / raw)
  To: Jonathan Larmour; +Cc: ecos-discuss

On 28 Jun 1999, Jonathan Larmour wrote:

> Jamie Guinan  <guinan@bluebutton.com> wrote:
> 
> >If not, would a simple "linux filesystem driver" be worth spending
> >some time on?
> 
> We do have plans for an all-singing all-dancing configurable pluggable
> virtual file system infrastructure :-), but it'll take some time to sort
> out. Expect an RFC in the not-too-distant future.

Looking forward to that!  So right now the only things I can fopen()
are /dev entries like "/dev/haldiag", correct?

> But if you want to hack
> something quick and dirty up, feel free!

Actually, I found that the stuff from syscall-i386-linux-1.0.S
works well enough for me.  I am able to open and write files
with code such as,

  #define O_WRONLY             01
  #define O_CREAT            0100

  int fd;
  char *buff = "Boogie down!\n";
  fd=cyg_hal_sys_open("/tmp/ecos.out", O_CREAT|O_WRONLY, 00777);
  cyg_hal_sys_write(fd, buff, strlen(buff));
  cyg_hal_sys_close(fd);

I have yet to try reading, though.

-Jamie

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [ECOS] Re: Linux Filesystem Access
  1999-06-30 10:49     ` [ECOS] Linux Filesystem Access Jamie Guinan
@ 1999-06-30 11:55       ` Jamie Guinan
  0 siblings, 0 replies; 9+ messages in thread
From: Jamie Guinan @ 1999-06-30 11:55 UTC (permalink / raw)
  To: ecos-discuss

On Wed, 30 Jun 1999, Jamie Guinan wrote:

> Actually, I found that the stuff from syscall-i386-linux-1.0.S
> works well enough for me.  I am able to open and write files
> with code such as,
...
> I have yet to try reading, though.

Hm, cyg_sys_hal_read() seems to block eCos entirely.  Guess
I have some more thinking to do.

What I would like to do is block on a read() from some external
source under eCos/synthetic-linux.  This way I can test code
that will eventually read from a serial port on my embedded
PowerPC target.

-Jamie

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~1999-06-30 11:55 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1999-06-21  5:53 [ECOS] linux .rel.got problem Andrew Lunn
1999-06-21  6:10 ` Jesper Skov
1999-06-21  7:11   ` Jesper Skov
1999-06-28 22:48     ` Jamie Guinan
1999-06-29  0:26       ` Jesper Skov
1999-06-28 13:07 ` Jamie Guinan
1999-06-28 14:00   ` Jonathan Larmour
1999-06-30 10:49     ` [ECOS] Linux Filesystem Access Jamie Guinan
1999-06-30 11:55       ` [ECOS] " Jamie Guinan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).