Bug 75511 - ld.so leaves no room for Fortran program's data
ld.so leaves no room for Fortran program's data
Status: CLOSED WONTFIX
Product: Red Hat Enterprise Linux 2.1
Classification: Red Hat
Component: kernel (Show other bugs)
2.1
All Linux
medium Severity medium
: ---
: ---
Assigned To: Larry Woodman
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2002-10-09 08:27 EDT by Bastien Nocera
Modified: 2012-06-20 12:00 EDT (History)
2 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2012-06-20 12:00:17 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:


Attachments (Terms of Use)
test case (247 bytes, text/plain)
2002-10-09 08:28 EDT, Bastien Nocera
no flags Details

  None (edit)
Description Bastien Nocera 2002-10-09 08:27:20 EDT
See http://www.absoft.com/linux70tfaq.html#anchor0113 for details

Test case attached below

Another work-around is available:
# echo 2147483647 > /proc/self/mapped_base
Comment 1 Bastien Nocera 2002-10-09 08:28:11 EDT
Created attachment 79604 [details]
test case
Comment 2 Jakub Jelinek 2002-10-09 08:52:37 EDT
That's kernel problem.
I think something like
--- linux/fs/binfmt_elf.c.jj   Wed Oct  9 08:30:41 2002
+++ linux/fs/binfmt_elf.c      Wed Oct  9 08:48:05 2002
@@ -709,6 +709,13 @@ static int load_elf_binary(struct linux_
        start_data += load_bias;
        end_data += load_bias;

+       /* Calling set_brk effectively mmaps the pages that we need
+        * for the bss and break sections
+        */
+       set_brk(elf_bss, elf_brk);
+
+       padzero(elf_bss);
+
        if (elf_interpreter) {
                if (interpreter_type == INTERPRETER_AOUT)
                        elf_entry = load_aout_interp(&interp_ex,
@@ -752,13 +759,6 @@ static int load_elf_binary(struct linux_
        current->mm->end_data = end_data;
        current->mm->start_stack = bprm->p;

-       /* Calling set_brk effectively mmaps the pages that we need
-        * for the bss and break sections
-        */
-       set_brk(elf_bss, elf_brk);
-
-       padzero(elf_bss);
-
 #if 0
        printk("(start_brk) %lx\n" , (long) current->mm->start_brk);
        printk("(end_code) %lx\n" , (long) current->mm->end_code);

but it is totally untested.
Comment 3 Jiri Pallich 2012-06-20 12:00:17 EDT
Thank you for submitting this issue for consideration in Red Hat Enterprise Linux. The release for which you requested us to review is now End of Life. 
Please See https://access.redhat.com/support/policy/updates/errata/

If you would like Red Hat to re-consider your feature request for an active release, please re-open the request via appropriate support channels and provide additional supporting details about the importance of this issue.

Note You need to log in before you can comment on or make changes to this bug.