PR0011.html

LSB Problem Report

Problem Report Number 0011 (REJ.0001)
Submitter's Classification Test Suite Problem (TSD)
State Resolved
Resolution Rejected (REJ)
Raised 2002-08-07 02:11
Updated 2002-08-27 08:26
Published 2002-08-27 08:26
Certification Program Linux Standard Base Conformance Release 1.2
Test Suite lsb-runtime IA32 version 1.2.1-1
Test Identification LSB.os/mprotect/mprotect_P/T.mprotect.4
Problem Summary Function copying fails on architecture with function descriptors
Problem Text Acrhitectures that use a "function descriptor" scheme do
not fit the test assumption that taking the address of a
function returns the entry-point address of that function.
Observed on Itanium; believed to also be true on PPC64, PA-
RISC. On Itanium you get a pointer to a function descriptor:

struct fdesc {
void *ip; /* entry point (code address) */
void *gp; /* global-pointer */
};

The test in question (and mmap_P.3,4) calls a utility
routine vsrt_create_exec_file which attempts to copy the
code for a function to a file so that the test can try to
execute that function, but what is copied is the function
decriptor and following bytes. Since the function
descriptor is not modified, when the test executes from
this location, it is thus executing the function from the
OLD location.

On Itanium there are protection and other issues which
cause the segmentation faults. A proposed patch (Itanium-
specific, can probably be generalized) is available on
request; the general method for descriptor-based
architectures is to make sure the function is copied, then
rebuild a new function descriptor and use it to execute the
copied function.
Test Output 10|596 /tset/LSB.os/mprotect/mprotect_P/T.mprotect_P
21:55:56|TC Start, scenario ref 601-0
15|596 3.3-lite 11|TCM Start
...
400|596 4 1 21:56:02|IC Start
200|596 4 21:56:02|TP Start
520|596 4 00015201 1 1|Page was not executable
220|596 4 1 21:56:04|FAIL
410|596 4 1 21:56:04|IC End

Also:
10|588 /tset/LSB.os/mfiles/mmap_P/T.mmap_P 21:54:58|TC
Start, scenario ref 593-0
15|588 3.3-lite 34|TCM Start
...
400|588 3 1 21:54:58|IC Start
200|588 3 21:54:58|TP Start
520|588 3 00015140 1 1|SIGSEGV received
220|588 3 1 21:54:58|FAIL
410|588 3 1 21:54:58|IC End
400|588 4 1 21:54:58|IC Start
200|588 4 21:54:58|TP Start
520|588 4 00015141 1 1|SIGSEGV received
220|588 4 1 21:54:58|FAIL
410|588 4 1 21:54:58|IC End

Review Information

Review Type TSMA Review
Start Date 2002-08-07 02:11
Last Updated 2002-08-12 16:21
Completed 2002-08-12 16:21
Status Complete
Review Recommendation Rejected (REJ)
Review Response The test strategy is believed to be correct on
the IA32 processor architecture. The architecture
quoted is not valid in the current program, and
hence the TSMA recommends that this problem
report be rejected as a TSD . The issue
should be dealt with by a bug report into Sourceforge.

Review Type SA Review
Start Date 2002-08-12 15:21
Last Updated 2002-08-22 13:10
Completed 2002-08-22 13:10
Status Complete
Review Resolution Rejected (REJ)
Review Conclusion The SA concurrs with the TSMA

 

Copyright 2005, The Free Standards Group, All Rights Reserved