Linux-Development-Sys Digest #545, Volume #8 Wed, 7 Mar 01 14:13:15 EST
Contents:
Re: process address space (Josef Moellers)
Re: Can linux be trusted? ([EMAIL PROTECTED])
Re: Grub. ("lfree")
Re: Can linux be trusted? ("Peter T. Breuer")
Re: process address space ("Peter T. Breuer")
Re: does anybody successfully update rpm 3 to rpm 4 in redhat 6.22? ("Peter T.
Breuer")
looking for DCE-RPC for RedHat 7.0 (John Prokopek)
Pointer to Physical memory for use with DMA? (Scott Graunke)
Re: Pointer to Physical memory for use with DMA? (David Florez)
mount result in invalid operand: 0000 ([EMAIL PROTECTED])
Re: Pointer to Physical memory for use with DMA? (Grant Edwards)
what is Error 21? (Richard Crew)
Re: Can linux be trusted? ([EMAIL PROTECTED])
Re: Pointer to Physical memory for use with DMA? (Pete Zaitcev)
Re: Can linux be trusted? ("Jeffrey S. Kline")
ld configuration (Byron Young)
----------------------------------------------------------------------------
From: Josef Moellers <[EMAIL PROTECTED]>
Subject: Re: process address space
Date: Wed, 07 Mar 2001 12:14:37 +0100
Srikanth Anumalla wrote:
> It s not allowing to use this "map", and I can not change the permissio=
ns of
> it also being "root",
> so please tell me how to use this
??? /proc/self/map is a symbolic link to the /proc node of whatever
process is accessing it. The /proc node is readable by the owner of the
process.
I can do a "cat /proc/self/maps":
% cat /proc/self/maps
08048000-0804b000 r-xp 0000000000000000 03:03 57388 /bin/cat
0804b000-0804c000 rw-p 0000000000002000 03:03 57388 /bin/cat
=2E..
40109000-4011f000 r--p 0000000000000000 03:03 276484 =
/usr/share/locale/en_US/LC_CTYPE
bfffb000-c0000000 rwxp ffffffffffffc000 00:00 0
I don't really see your problem. Since your email address is @cisco.com,
I assume you don't ask me to do your homework ...
Another possibility is to start at virtual address 0 and increment the
address by the system page size, catching SIGSEGVs and SIGBUSs.
-- =
Josef M=F6llers (Pinguinpfleger bei FSC)
If failure had no penalty success would not be a prize
-- T. Pratchett
------------------------------
From: [EMAIL PROTECTED]
Crossposted-To:
comp.lang.c,comp.os.linux.development.apps,comp.sys.be.programmer,comp.sys.mac.programmer.misc,comp.unix.bsd.freebsd.misc,comp.unix.bsd.misc,gnu.gcc,linux.debian.bugs.reports,linux.dev.gcc
Subject: Re: Can linux be trusted?
Date: Wed, 7 Mar 2001 11:41:57 +0000
Jeffrey S. Kline <[EMAIL PROTECTED]> did eloquently scribble:
> Seems to me too that some are missing another point in all this...
> The compiler just generates code calls to the processor(s)... Anyone wish to
> take a gander at the actual results from using the floating point math from
> Wintel processors??? <grin> Did you tell the compiler to use hardware FP,
> or use emulation?
Errr... The whole point of emulation is that the FPU calls are intercepted
and passed to software routines.
It makes no difference to the compiler if the processor has an FPU or not.
The generated code will merely be dependent on the "Emulate FPU" functions
of the kernel.
--
=============================================================================
| [EMAIL PROTECTED] | Windows95 (noun): 32 bit extensions and a |
| | graphical shell for a 16 bit patch to an 8 bit |
|Andrew Halliwell BSc(hons)| operating system originally coded for a 4 bit |
| in |microprocessor, written by a 2 bit company, that|
| Computer Science | can't stand 1 bit of competition. |
=============================================================================
------------------------------
From: "lfree" <[EMAIL PROTECTED]>
Subject: Re: Grub.
Date: Wed, 7 Mar 2001 20:12:15 +0800
"Me" <[EMAIL PROTECTED]> wrote in message
news:99hp6.151$[EMAIL PROTECTED]...
> I downloaded the new version of Kernel, (2_4_2)..And here's what I
did.. -->
>
> $ cd /usr/src
> $ mv linux linux.old
> $ tar xzf /path/to/linux-2_4_2_tar.gz
> $ mv linux linux-2_4_2
> $ ln -s linux-2_4_2 linux
> $ cd linux
> make config
>
> Okay.. It all went well.. After a few hours.. =P I finally got the kernel
> configured.
>
> $ make dep && make bzImage && make modules && make modules_install
>
> $ make install
>
> It installed well, and for the first time ever, I installed and configured
> the new kernel aalllll by myself. I was beggining to feel a sense of pride
> coming over me.. Until this horrible thing happened.
>
> I went to update.. The grub.
> Because when I typed /boot/grub/menu.lst, nothing happened.. I opted to
open
> menu.lst in a text editor, and change the settings there, then saving it.
> I crossed my fingers and hoped for the best.
>
> It looked something like this.. -->
>
> timeout 5
> color black/cyan yellow/cyan
> i18n (hd0,4)/boot/grub/messages
> keytable (hd0,4)/boot/fr-latin1.klt
>
> title linux
> kernel (hd0,4)/boot/vmlinuz root=/dev/hda5
>
> Then it has the failsafe one, floppy and my Windows partition there.
>
> What I did, was add this line:
> title linux-two
> kernel (hd0,4)/boot/vmlinuz-2_4_2 root=/dev/hda5
>
> Well, it saved alright, and when I opened menu.lst it was there as I had
> saved it.. So it was now time to restart the puter..
> I did, and the shut down button still worked fine.. It started up, but
when
> the time came for me to choose what I wanted to open.. Nothing happened.
The
> screen went black, and then.. Something terrible... ---->
>
> grub>
you type at > ,
kernel (hd0,4)/boot/vmlinuz root=/dev/hda5,
boot
you can use <tab> like bash.
>
> WHAT THE HELL IS THAT??!?
> Nothing that I typed work. I tried boot, I tried kernel, I even tried
typing
> quit. Nothing worked.. I had a Windows boot disk and that's how I'm here
> right now.. But heck.. What did I do wrong?? I mean, I don't think I did
> anything wrong.. The only time that I might have done something that I
> wasn't supposed to was when I opened menu.lst in a text editor to change
> it.. But that was the only way to edit it, right?
>
> ggrrr.. Please help me..
>
>
------------------------------
From: "Peter T. Breuer" <[EMAIL PROTECTED]>
Crossposted-To: comp.os.linux.development.apps
Subject: Re: Can linux be trusted?
Date: Wed, 7 Mar 2001 13:39:56 +0100
In comp.os.linux.development.system [EMAIL PROTECTED] wrote:
> As one of the originators of that stupid thread, (having posted a particularly
> stupid article), may i ask you guys to stop these rants. The problem
> was related to the fact that any rounding function ( (int), floor(), etc.)
> is inherently discontinuous, since there is no continuous functions from
> reals to integers. So whatever you do, you are bound to find things
Uh, any constant function from reals to integers is continuous. E.g.
x |-> 1. Now didn't I just have to gone and said that?
Actually, the problem is the reals topology. Use the Baire topology
(difference measured in number of decimals difference) and you will be
OK wrt continuity, if nothing else! (Shucks).
> such as 9=10 using them precisely on a discontinuity point. A more
Yawn. Yah.
> like being disturbed by morons. Please don't continue fuelling it with
> absolutely obvious observations, known to everybody from elementary
> school.
Morons are by and large the only people on usenet, these days!
Apparently it's not fair to discriminate :-).
Peter
------------------------------
From: "Peter T. Breuer" <[EMAIL PROTECTED]>
Subject: Re: process address space
Date: Wed, 7 Mar 2001 13:45:34 +0100
Josef Moellers <[EMAIL PROTECTED]> wrote:
> Another possibility is to start at virtual address 0 and increment the
> address by the system page size, catching SIGSEGVs and SIGBUSs.
Wooooh! I _like_ that!
Peter
------------------------------
From: "Peter T. Breuer" <[EMAIL PROTECTED]>
Subject: Re: does anybody successfully update rpm 3 to rpm 4 in redhat 6.22?
Date: Wed, 7 Mar 2001 13:42:54 +0100
hushui <[EMAIL PROTECTED]> wrote:
> Since it is rpm ver 4 in redhat 7.0,and many package is packaged by rpm 4
> and they can not be installed in rpm 3 (redaht 6.2). But I don't like
> redhat 7.0 ,because there is so many problem in gcc of redhat 7.0.
> How to update rpm 3 to rpm 4??
Don't.
> Is it dangerous to the system ??
Yes. It will partially convert your system to redhat 7, which you don't
like. And you won't like it at all when you discover that the binaries
in the rpm 4 packages don't work with your RH 6 system, and v.v.
Peter
------------------------------
From: John Prokopek <[EMAIL PROTECTED]>
Crossposted-To: comp.os.linux.development.apps
Subject: looking for DCE-RPC for RedHat 7.0
Date: Wed, 07 Mar 2001 08:22:30 -0500
Does anyone know if a stable version of dce-rpc exists for RH linux?
The rpc that comes with RH seems to be ONC.
thanks for the help
--
John D. Prokopek
[EMAIL PROTECTED]
"The bus came by and I got on
thats when it all began ...."
------------------------------
From: [EMAIL PROTECTED] (Scott Graunke)
Subject: Pointer to Physical memory for use with DMA?
Date: 7 Mar 2001 07:16:19 -0600
Hi,
I am making a quick (at least I thought it would be) test application for
a custom PCI board. This board has numerous "pass-thru" regions and can
be a "bus master" to an add-on bus on the other side of the bridge.
The pass-thru regions are assigned a physical memory (ot I/O) address on
boot by the BIOS POST routines, these can be used in a user application
by "mapping" them into user space by the use of the mmap() call, all this
works fine.....
What I need to do now is test the busmastering by allocating and
populating a region of memory, then telling the bridge part to busmaster
(move) the data from this region to the add-on bus.
The address that I must give the part is the "physical address" of the
allocated memory, this area must also be DMA-safe. I don't know how to get
a physical region on RAM!
I've read up on the vmalloc() and get_free_pages() functions but these
appear to be kernel functions only. As Iam writting a root app and not a
kernel module I can't use these calls.
Is the any way to obtain a "DMA safe physical memory pointer" or a page
address from a root application?
Thanks in advance,
Scott Graunke
[EMAIL PROTECTED]
------------------------------
From: David Florez <[EMAIL PROTECTED]>
Subject: Re: Pointer to Physical memory for use with DMA?
Date: Wed, 07 Mar 2001 15:09:05 +0100
This is what you're looking for:
http://www.scs.ch/~frey/linux/memorymap.html
Regards.
Scott Graunke wrote:
>
> Hi,
>
> I am making a quick (at least I thought it would be) test application for
> a custom PCI board. This board has numerous "pass-thru" regions and can
> be a "bus master" to an add-on bus on the other side of the bridge.
> The pass-thru regions are assigned a physical memory (ot I/O) address on
> boot by the BIOS POST routines, these can be used in a user application
> by "mapping" them into user space by the use of the mmap() call, all this
> works fine.....
>
> What I need to do now is test the busmastering by allocating and
> populating a region of memory, then telling the bridge part to busmaster
> (move) the data from this region to the add-on bus.
> The address that I must give the part is the "physical address" of the
> allocated memory, this area must also be DMA-safe. I don't know how to get
> a physical region on RAM!
>
> I've read up on the vmalloc() and get_free_pages() functions but these
> appear to be kernel functions only. As Iam writting a root app and not a
> kernel module I can't use these calls.
>
> Is the any way to obtain a "DMA safe physical memory pointer" or a page
> address from a root application?
>
> Thanks in advance,
>
> Scott Graunke
> [EMAIL PROTECTED]
------------------------------
From: [EMAIL PROTECTED]
Subject: mount result in invalid operand: 0000
Date: 7 Mar 2001 14:38:18 GMT
Hi,
I have recently been given an old 386 PC, I haven't got a hard disk for it,
just a floppy and a network card, so I decided to create a boot disk for it,
and then using nfs connect to one of my two pentium (which run RedHat 6.2)
and work like that.
I made a boot disk and with the linux 6.2 kernel and a root image, I tested
on one of my pentium with the other pentium as an nfs server, it is working
fine. However when i tryed it on the 386 things started to go wrong:
1- when the kernel was booting i was getting:
Checking if this processor honours the WP bit even in supervisor mode...
No.
Kernel panic: This Kernel doesn't support CPU's with broken WP.
Recompile
it for a 386!
In swapper task - not syncing
so i recompiled the kernel as explained in Kernel Howto and enable 386
support
2- Now the kernel boot on the 386 but when i try to use mount to connect
to the nfs server I get invalid operand: 000. Using strace i had a closer
look
to find out at what point mount was buging here is what i am getting:
....
mount("boggus:/home/export", "/mnt/temp/", "nfs",
0xc0ed0000, 0x8057660) = -1
ENOSYS
mount("boggus:/home/export", "/mnt/temp/", "nfs",
0xc0ed0000, 0x8057660invalid
operand: 0000
I have to say I don't know what to do now? did somebody solve that problem
before? what else can i try to do to find out where the problem is comming
from?
thanks for any help
regards
Jerome
----- Posted via NewsOne.Net: Free (anonymous) Usenet News via the Web -----
http://newsone.net/ -- Free reading and anonymous posting to 60,000+ groups
NewsOne.Net prohibits users from posting spam. If this or other posts
made through NewsOne.Net violate posting guidelines, email [EMAIL PROTECTED]
------------------------------
From: [EMAIL PROTECTED] (Grant Edwards)
Subject: Re: Pointer to Physical memory for use with DMA?
Date: Wed, 07 Mar 2001 16:05:10 GMT
In article <3aa634a4$0$1615$[EMAIL PROTECTED]>, Scott Graunke wrote:
>I am making a quick (at least I thought it would be) test application for
>a custom PCI board.
Been there, done that. Including the DMA part. A framework
for a driver that allocates a DMA-able block of ram and allows
the user to memory map it via mmap() can be found at
ftp://ftp.visi.com/users/grante/stuff/demomm.tar.gz
This driver also impliments mmap() for two blocks of PCI board
memory space.
>Is the any way to obtain a "DMA safe physical memory pointer" or a page
>address from a root application?
Yup. One of the tricks is letting the user app know what the
physical address of the DMA buffer block is so that the DMA
controller can be properly set up. The driver I pointed to
above fills in the first word of the DMA buffer block with it's
physical address so that the user app can read it after the
mmap() call.
--
Grant Edwards grante Yow! I want to TAKE IT
at HOME and DRESS IT UP in
visi.com HOT PANTS!!
------------------------------
From: [EMAIL PROTECTED] (Richard Crew)
Subject: what is Error 21?
Reply-To: [EMAIL PROTECTED]
Date: Wed, 07 Mar 2001 16:40:57 GMT
An attempt to install the new gtk/glib-1.2.9 has somehow resulted in all my
versions of Imlib failing to work. I'm not sure how this happened. The
result of a command like 'ldd /usr/local/lib/libImlib.so.1.9.8' results in:
./libImlib.so.1.9.8: error while loading shared libraries: cannot load
shared object file: Error 21
What is this error and what is going on? This happens even when I rebuild and
reinstall libImlib.
--Rich
[EMAIL PROTECTED]
--
Better to toss a stone at random, then a word.
-Porphyry
------------------------------
From: [EMAIL PROTECTED]
Crossposted-To: comp.os.linux.development.apps
Subject: Re: Can linux be trusted?
Date: Wed, 7 Mar 2001 17:41:37 +0100
In comp.os.linux.development.system Peter T. Breuer <[EMAIL PROTECTED]> wrote:
> In comp.os.linux.development.system [EMAIL PROTECTED] wrote:
>> As one of the originators of that stupid thread, (having posted a particularly
>> stupid article), may i ask you guys to stop these rants. The problem
>> was related to the fact that any rounding function ( (int), floor(), etc.)
>> is inherently discontinuous, since there is no continuous functions from
>> reals to integers. So whatever you do, you are bound to find things
> Uh, any constant function from reals to integers is continuous. E.g.
> x |-> 1. Now didn't I just have to gone and said that?
I think you would not be happy if floor() returned a constant value,
but yes it was not worded with absolute precision.
> Morons are by and large the only people on usenet, these days!
> Apparently it's not fair to discriminate :-).
Yes but people in comp.lang.c very much dislike morons, review
the thread and you will understand :)
> Peter
In fact i still don't understand precisely why computing the thing
with 80 bits in the floating point unit yields the down by one value 9
while computing with partial results rounded to 64 bits yields 10.
There has to be a very special way that 80 bits things are rounded to 64
bits in the x86 processor, and moreover this way is controlled by
a processor control word (which is set differently in linux and freebsd).
It would be nice to have a dump of floating points registers at each step
of the computation, but last time i looked, gdb did not allow to see
them on the x86.
--
Michel Talon
------------------------------
From: [EMAIL PROTECTED] (Pete Zaitcev)
Subject: Re: Pointer to Physical memory for use with DMA?
Date: Wed, 07 Mar 2001 17:40:46 GMT
> From: Scott Graunke <[EMAIL PROTECTED]>
> I've read up on the vmalloc() and get_free_pages() functions but these
> appear to be kernel functions only. As Iam writting a root app and not a
> kernel module I can't use these calls.
This is Scott's problem right there. I see literally hundreeds of
postings by newbies asking how they can access devices from user
mode. I gave up on trying to help those idiots long ago. But in
this case, Scott appears to understand the issues involved.
And yet he wants to do it anyways.
Personally, I just do not understand why such a hard headed
insistence on doing it the wrong way. It amounts on insistence
to remove adenoids though an asshole with a weilding torch [*],
then complaining of problems with that approach.
Nothing can be simpler than writing up a dummy Linux driver
that initializes a PCI device. For fuck's sake, we've got the
source! If you cannot copy and paste, you ought to
stay away from Linux programming in the first place, no matter
userland or kernel!
-- Pete
[*] Russian folk saying.
------------------------------
From: "Jeffrey S. Kline" <[EMAIL PROTECTED]>
Crossposted-To:
comp.lang.c,comp.os.linux.development.apps,comp.sys.be.programmer,comp.sys.mac.programmer.misc,comp.unix.bsd.freebsd.misc,comp.unix.bsd.misc,gnu.gcc,linux.debian.bugs.reports,linux.dev.gcc
Subject: Re: Can linux be trusted?
Date: Wed, 7 Mar 2001 12:39:37 -0600
Rehi;
I'm not quite sure if this is correct.
Last I understood, many math calls from many an emulation routine, do a lot
of it simply by allocating some stack/heap space, and using the routines
that are built into the processor (mult/div/add/sub) by calls to the
processors instruction set and fetching results out of AX, BX, CX, DX,
etc... Calculations, carrys, borrows, etc., are just stuff either put into
local vars (stack/heap space), etc.., and then passed back as pointers to
where the results are.
By definition here, if there is a problem with say a rounding error in a
division routine call, then this will factor down and effect the emulations
output. This was an obvious flaw in many an INTEL MMX chip of some time
ago... only thing is... someone noticed it and "cried fire in a crowded
theater"... <grin> Intel got caught with it's pants down so to speak, and
lots of nasty unwanted publicity <grin>.
If the compiled code is then run, and a call is made to an emulated FPU, and
because of a processor error, a drop of 1 low order bit in the ES/DI regs,
puts a jump in 2 bytes into the SFPU code and starts a really neat chain
that gives a result, but not what one would expect. I had an older Cyrix
chip do this one to me while I was coding a Delphi app under Ole Windows 95
way back when. A routine would "routinely" return the wrong results on
machines with no FPU, but was fine on machines with it. Then later came the
Intel issue, and the problem was reversed... we had problems on the hardware
FPU, but the software version returned fine... <go figure>
I recently also found something similar to this in an Amd K6-2 chip. Thing
works just fine and you'd never spot it unless you did something with a
fractional return of 7 digits or more as a result. Fortunately, this just
turned out to be a bad chip and a new one fixed the problem instantly.
Cheers;
Jeff
>
> Errr... The whole point of emulation is that the FPU calls are intercepted
> and passed to software routines.
>
> It makes no difference to the compiler if the processor has an FPU or not.
> The generated code will merely be dependent on the "Emulate FPU" functions
> of the kernel.
>
>
------------------------------
Date: Wed, 07 Mar 2001 11:00:24 -0800
From: Byron Young <[EMAIL PROTECTED]>
Subject: ld configuration
Hi, the following is a ls of /usr/lib/ldscripts
elf_i386.x elf_i386.xr i386linux.x i386linux.xr
elf_i386.xbn elf_i386.xs i386linux.xbn i386linux.xu
elf_i386.xn elf_i386.xu i386linux.xn
gcc creates an executable binary for the system. However, using gcc -c,
then using ld results in numerous ld undefined external reference
errors. The output of gcc -v (cleaned up) is:
BEGIN OUTPUT
gcc -v test.c -o test.bin
Reading specs from /usr/lib/gcc-lib/i586-pc-linux-gnu/2.95/specs
gcc version 2.95 19990728 (release)
/usr/lib/gcc-lib/i586-pc-linux-gnu/2.95/cpp
-lang-c
-v
-D__GNUC__=2
-D__GNUC_MINOR__=95
-D__ELF__
-Dunix
-D__i386__
-Dlinux
-D__ELF__
-D__unix__
-D__i386__
-D__linux__
-D__unix
-D__linux
-Asystem(posix)
-Acpu(i386)
-Amachine(i386)
-Di386
-D__i386
-D__i386__
-Di586
-Dpentium
-D__i586
-D__i586__
-D__pentium
-D__pentium__
test.c
/tmp/ccFLwRXq.i
GNU CPP version 2.95 19990728 (release) (i386 Linux/ELF)
#include "..." search starts here:
#include <...> search starts here:
/usr/include
/usr/lib/gcc-lib/i586-pc-linux-gnu/2.95/../../../..\
/i586-pc-linux-gnu/include
/usr/lib/gcc-lib/i586-pc-linux-gnu/2.95/include
/usr/include
End of search list.
The following default directories have been omitted
from the search path:
/usr/include/g++
End of omitted list.
/usr/lib/gcc-lib/i586-pc-linux-gnu/2.95/cc1
/tmp/ccFLwRXq.i
-quiet
-dumpbase
test.c
-version
-o /tmp/ccUIqwPI.s
GNU C version 2.95 19990728 (release) (i586-pc-linux-gnu)
compiled by GNU C version 2.95 19990728 (release).
/usr/i586-pc-linux-gnu/bin/as
-V
-Qy
-o /tmp/ccZ2WBs3.o
/tmp/ccUIqwPI.s
GNU assembler version 2.9.1 (i586-pc-linux-gnu),
using BFD version 2.9.1
/usr/lib/gcc-lib/i586-pc-linux-gnu/2.95/collect2
-m elf_i386
-dynamic-linker
/lib/ld-linux.so.2
-o test.bin
/usr/lib/crt1.o
/usr/lib/crti.o
/usr/lib/gcc-lib/i586-pc-linux-gnu/2.95/crtbegin.o
-L/usr/lib/gcc-lib/i586-pc-linux-gnu/2.95
-L/usr/i586-pc-linux-gnu/lib
/tmp/ccZ2WBs3.o
-lgcc
-lc
-lgcc
/usr/lib/gcc-lib/i586-pc-linux-gnu/2.95/crtend.o
/usr/lib/crtn.o
END OUTPUT
How do I configure ld to produce the same executible as gcc? So all I
have to do is issue the command:
ld test.o -o test.bin
If I run ld using exactly the same command line options as collect2,
then a executable binary is created. Otherwise, errors happen.
Thanks in advance,
[EMAIL PROTECTED]
------------------------------
** FOR YOUR REFERENCE **
The service address, to which questions about the list itself and requests
to be added to or deleted from it should be directed, is:
Internet: [EMAIL PROTECTED]
You can send mail to the entire list by posting to the
comp.os.linux.development.system newsgroup.
Linux may be obtained via one of these FTP sites:
ftp.funet.fi pub/Linux
tsx-11.mit.edu pub/linux
sunsite.unc.edu pub/Linux
End of Linux-Development-System Digest
******************************