public inbox for frysk@sourceware.org
 help / color / mirror / Atom feed
* elfutils import
@ 2007-08-22 21:45 Sami Wagiaalla
  2007-08-22 21:52 ` Roland McGrath
  2007-08-27 18:23 ` Sami Wagiaalla
  0 siblings, 2 replies; 8+ messages in thread
From: Sami Wagiaalla @ 2007-08-22 21:45 UTC (permalink / raw)
  To: frysk

I have tagged the frysk source with:
 
   pre-elfutils_0_129-merge

Imported elfutils 0.129 under the branch:
   elfutils_0_129

But have not merged it with the main trunk yet, as there are some test 
failures.

To get a merged version of the tree I do this:

cvs -d:ext:swagiaal@sources.redhat.com:/cvs/frysk checkout -j 
elfutils_0_127 -j elfutils_0_129 frysk

I then resolve all the conflicts by blindly favoring upstream.

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

* Re: elfutils import
  2007-08-22 21:45 elfutils import Sami Wagiaalla
@ 2007-08-22 21:52 ` Roland McGrath
  2007-08-27 19:29   ` Sami Wagiaalla
  2007-08-27 18:23 ` Sami Wagiaalla
  1 sibling, 1 reply; 8+ messages in thread
From: Roland McGrath @ 2007-08-22 21:52 UTC (permalink / raw)
  To: Sami Wagiaalla; +Cc: frysk

> But have not merged it with the main trunk yet, as there are some test 
> failures.

There is one self-test failure on F8 for ppc32 with the 0.129 sources.
Rawhide has a patch for that.

> I then resolve all the conflicts by blindly favoring upstream.

Please show me all the differences in that tree from the upstream elfutils.
You should not be carrying any.


Thanks,
Roland

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

* Re: elfutils import
  2007-08-22 21:45 elfutils import Sami Wagiaalla
  2007-08-22 21:52 ` Roland McGrath
@ 2007-08-27 18:23 ` Sami Wagiaalla
  1 sibling, 0 replies; 8+ messages in thread
From: Sami Wagiaalla @ 2007-08-27 18:23 UTC (permalink / raw)
  To: frysk

[-- Attachment #1: Type: text/plain, Size: 494 bytes --]


> To get a merged version of the tree I do this:
>
> cvs -d:ext:swagiaal@sources.redhat.com:/cvs/frysk checkout -j 
> elfutils_0_127 -j elfutils_0_129 frysk
>
> I then resolve all the conflicts by blindly favoring upstream.
>

I have committed the merge to this branch: 
sami-elfutils_129-merge-20070827-branch

check it out like this:

cvs -d:ext:swagiaal@sources.redhat.com:/cvs/frysk checkout -r 
sami-elfutils_129-merge-20070827-branch frysk

attached are the test results from frysk-core

[-- Attachment #2: test_results --]
[-- Type: text/plain, Size: 60104 bytes --]

make  check-am
make[1]: Entering directory `/notnfs/swagiaal/frysks/frysk.merge/frysk-core'
make   
make[2]: Entering directory `/notnfs/swagiaal/frysks/frysk.merge/frysk-core'
make  all-am
make[3]: Entering directory `/notnfs/swagiaal/frysks/frysk.merge/frysk-core'
make[3]: Nothing to be done for `all-am'.
make[3]: Leaving directory `/notnfs/swagiaal/frysks/frysk.merge/frysk-core'
make[2]: Leaving directory `/notnfs/swagiaal/frysks/frysk.merge/frysk-core'
make  check-TESTS check-local
make[2]: Entering directory `/notnfs/swagiaal/frysks/frysk.merge/frysk-core'
Running testBackTrace(frysk.bindir.TestFcatch) ...PASS
Running testNoArguments(frysk.bindir.TestFcore) ...PASS
Running testBadArguments(frysk.bindir.TestFcore) ...PASS
Running testBadConsoleParameter(frysk.bindir.TestFcore) ...PASS
Running testBadLogParameter(frysk.bindir.TestFcore) ...PASS
Running testGoodConsoleBadLogParameter(frysk.bindir.TestFcore) ...PASS
Running testBadConsoleBadLogParameter(frysk.bindir.TestFcore) ...PASS
Running testBadConsoleGoodLogParameter(frysk.bindir.TestFcore) ...PASS
Running testInvalidArgument(frysk.bindir.TestFcore) ...PASS
Running testPathListing(frysk.bindir.TestFdebuginfo) ...PASS
Running testNoArguments(frysk.bindir.TestFdebuginfo) ...PASS
Running testBadArguments(frysk.bindir.TestFdebuginfo) ...PASS
Running testInvalidArgument(frysk.bindir.TestFdebuginfo) ...PASS
Running testExeOfPid(frysk.bindir.TestFexe) ...PASS
Running testHpdPid(frysk.bindir.TestFhd) ...PASS
Running testHpdCommand(frysk.bindir.TestFhd) ...PASS
Running testHpdCore(frysk.bindir.TestFhd) ...PASS
Running testBackTrace(frysk.bindir.TestFstack) ...PASS
Running testBackTraceWithParams(frysk.bindir.TestFstack) ...PASS
Running testBackTraceWithScopes(frysk.bindir.TestFstack) ...PASS
Running testBackTraceWithFullpath(frysk.bindir.TestFstack) ...PASS
Running testBackTraceWithDashA(frysk.bindir.TestFstack) ...PASS
Running testBackTraceWithDashC(frysk.bindir.TestFstack) ...PASS
Running testBackTraceWithDashV(frysk.bindir.TestFstack) ...PASS
Running testFirstStep(frysk.bindir.TestFStep) ...UNSUPPORTED
  disassembler
Running testFtraceTraces(frysk.bindir.TestFtrace) ...PASS
Running testFtraceFollowsClones(frysk.bindir.TestFtrace) ...PASS
Running testFtraceFollowsForks(frysk.bindir.TestFtrace) ...PASS
Running testFrameDebugInfoStackTrace(frysk.debuginfo.TestFrameDebugInfo) ...PASS
Running testFrameAdjustedAddress(frysk.debuginfo.TestFrameDebugInfo) ...UNRESOLVED
  http://sourceware.org/bugzilla/show_bug.cgi?id=4676
Running testFrameScopes(frysk.debuginfo.TestFrameDebugInfo) ...UNRESOLVED
  http://sourceware.org/bugzilla/show_bug.cgi?id=4677
Running testFrameScopesWorkAround(frysk.debuginfo.TestFrameDebugInfo) ...PASS
Running testGetInlinedSubroutines(frysk.debuginfo.TestFrameDebugInfo) ...PASS
Running testVirtualStackTrace(frysk.debuginfo.TestFrameDebugInfo) ...PASS
Running testInlinedFunctionDerailment(frysk.debuginfo.TestFrameDebugInfo) ...PASS
Running testValues(frysk.debuginfo.TestFrameDebugInfo) ...PASS
Running testColNumbers(frysk.debuginfo.TestFrameDebugInfo) ...PASS
Running testLineNumbers(frysk.debuginfo.TestFrameDebugInfo) ...PASS
Running testDup(frysk.debuginfo.TestLocationExpression) ...PASS
Running testPlus(frysk.debuginfo.TestLocationExpression) ...PASS
Running testMul(frysk.debuginfo.TestLocationExpression) ...PASS
Running testDiv(frysk.debuginfo.TestLocationExpression) ...PASS
Running testMod(frysk.debuginfo.TestLocationExpression) ...PASS
Running testOver(frysk.debuginfo.TestLocationExpression) ...PASS
Running testDrop(frysk.debuginfo.TestLocationExpression) ...PASS
Running testSwap(frysk.debuginfo.TestLocationExpression) ...PASS
Running testRot(frysk.debuginfo.TestLocationExpression) ...PASS
Running testAbs(frysk.debuginfo.TestLocationExpression) ...PASS
Running testNeg(frysk.debuginfo.TestLocationExpression) ...PASS
Running testNot(frysk.debuginfo.TestLocationExpression) ...PASS
Running testAnd(frysk.debuginfo.TestLocationExpression) ...PASS
Running testOr(frysk.debuginfo.TestLocationExpression) ...PASS
Running testShl(frysk.debuginfo.TestLocationExpression) ...PASS
Running testShr(frysk.debuginfo.TestLocationExpression) ...PASS
Running testShra(frysk.debuginfo.TestLocationExpression) ...PASS
Running testXor(frysk.debuginfo.TestLocationExpression) ...PASS
Running testLe(frysk.debuginfo.TestLocationExpression) ...PASS
Running testGe(frysk.debuginfo.TestLocationExpression) ...PASS
Running testDOMFrysk(frysk.dom.TestDOM) ...PASS
Running testDOMImage(frysk.dom.TestDOM) ...PASS
Running testDOMFunction(frysk.dom.TestDOM) ...PASS
Running testDOMsource(frysk.dom.TestDOM) ...PASS
Running testDOMLine(frysk.dom.TestDOM) ...PASS
Running testDOMInlineInstance(frysk.dom.TestDOM) ...PASS
Running testDOMFormFeed(frysk.dom.TestDOM) ...PASS
Running testParser(frysk.dom.TestParser) ...UNRESOLVED
  http://sourceware.org/bugzilla/show_bug.cgi?id=3841
Running testReGet(frysk.dwfl.TestDwflCache) ...PASS
Running testClear(frysk.dwfl.TestDwflCache) ...PASS
Running testCountDownTimersAndSignals(frysk.event.TestPollEventLoop) ...PASS
Running testPeriodicTimer(frysk.event.TestPollEventLoop) ...PASS
Running testTimerRemoval(frysk.event.TestPollEventLoop) ...PASS
Running testScheduleBeforeRun(frysk.event.TestPollEventLoop) ...PASS
Running testSignalHandler(frysk.event.TestPollEventLoop) ...PASS
Running testAsync(frysk.event.TestPollEventLoop) ...PASS
Running testExecuteRunnable(frysk.event.TestPollEventLoop) ...PASS
Running testRequestRunnable(frysk.event.TestPollEventLoop) ...PASS
Running testManyExecutes(frysk.event.TestPollEventLoop) ...PASS
Running testManyRequests(frysk.event.TestPollEventLoop) ...PASS
Running testExecuteThrow(frysk.event.TestPollEventLoop) ...PASS
Running testRequestThrow(frysk.event.TestPollEventLoop) ...PASS
Running testExecuteImmediate(frysk.event.TestPollEventLoop) ...PASS
Running testRequestImmediate(frysk.event.TestPollEventLoop) ...PASS
Running testAAA(frysk.event.TestSigChild) ...PASS
Running testBBB(frysk.event.TestSigChild) ...PASS
Running testCountDownTimersAndSignals(frysk.event.TestWaitEventLoop) ...PASS
Running testPeriodicTimer(frysk.event.TestWaitEventLoop) ...PASS
Running testTimerRemoval(frysk.event.TestWaitEventLoop) ...PASS
Running testScheduleBeforeRun(frysk.event.TestWaitEventLoop) ...PASS
Running testSignalHandler(frysk.event.TestWaitEventLoop) ...PASS
Running testAsync(frysk.event.TestWaitEventLoop) ...PASS
Running testExecuteRunnable(frysk.event.TestWaitEventLoop) ...PASS
Running testRequestRunnable(frysk.event.TestWaitEventLoop) ...PASS
Running testManyExecutes(frysk.event.TestWaitEventLoop) ...PASS
Running testManyRequests(frysk.event.TestWaitEventLoop) ...PASS
Running testExecuteThrow(frysk.event.TestWaitEventLoop) ...PASS
Running testRequestThrow(frysk.event.TestWaitEventLoop) ...PASS
Running testExecuteImmediate(frysk.event.TestWaitEventLoop) ...PASS
Running testRequestImmediate(frysk.event.TestWaitEventLoop) ...PASS
Running testHpdBreakpoint(frysk.hpd.TestBreakpoints) ...PASS
Running testHpdBreakpointRunProcess(frysk.hpd.TestBreakpoints) ...UNRESOLVED
  http://sourceware.org/bugzilla/show_bug.cgi?id=4914
Running testHpdBreakpointInline(frysk.hpd.TestBreakpoints) ...UNRESOLVED
  http://sourceware.org/bugzilla/show_bug.cgi?id=4950
Running testHpdBreakpointLibrary(frysk.hpd.TestBreakpoints) ...UNRESOLVED
  http://sourceware.org/bugzilla/show_bug.cgi?id=4949
Running testHpdBreakStep(frysk.hpd.TestBreakpoints) ...PASS
Running testCoreCommand(frysk.hpd.TestCoreCommand) ...PASS
Running testCoreExeCommand(frysk.hpd.TestCoreCommand) ...PASS
Running testHpdDisassemble(frysk.hpd.TestDisassemblerCommand) ...UNSUPPORTED
  disassembler
Running testDisassembleRange(frysk.hpd.TestDisassemblerCommand) ...UNSUPPORTED
  disassembler
Running testHpdDisplayCommands(frysk.hpd.TestDisplayCommand) ...UNRESOLVED
  http://sourceware.org/bugzilla/show_bug.cgi?id=4951
Running testExamine(frysk.hpd.TestExamineCommand) ...PASS
Running testInstructionStep(frysk.hpd.TestFhpdStepping) ...UNRESOLVED
  http://sourceware.org/bugzilla/show_bug.cgi?id=4914
Running testLineStep(frysk.hpd.TestFhpdStepping) ...UNRESOLVED
  http://sourceware.org/bugzilla/show_bug.cgi?id=4914
Running testNextStep(frysk.hpd.TestFhpdStepping) ...UNRESOLVED
  http://sourceware.org/bugzilla/show_bug.cgi?id=4914
Running testNextiStep(frysk.hpd.TestFhpdStepping) ...UNRESOLVED
  http://sourceware.org/bugzilla/show_bug.cgi?id=4914
Running testFinishStep(frysk.hpd.TestFhpdStepping) ...UNRESOLVED
  http://sourceware.org/bugzilla/show_bug.cgi?id=4914
Running test(frysk.hpd.TestHpdCommandParser) ...PASS
Running testDashDash(frysk.hpd.TestHpdCommandParser) ...PASS
Running testRegular(frysk.hpd.TestHpdCommandParser) ...PASS
Running testRegularDashDash(frysk.hpd.TestHpdCommandParser) ...PASS
Running testOption(frysk.hpd.TestHpdCommandParser) ...PASS
Running testOptionAfterDashDash(frysk.hpd.TestHpdCommandParser) ...PASS
Running testOptionBeforeDashDash(frysk.hpd.TestHpdCommandParser) ...PASS
Running testOptionWithArgs(frysk.hpd.TestHpdCommandParser) ...PASS
Running testOptionWithArgsAfterDashDash(frysk.hpd.TestHpdCommandParser) ...PASS
Running testOptionWithArgsBeforeDashDash(frysk.hpd.TestHpdCommandParser) ...PASS
Running testHelp(frysk.hpd.TestHpdCommandParser) ...PASS
Running testUnattached(frysk.hpd.TestPrint) ...PASS
Running testHpdScalars(frysk.hpd.TestPrint) ...PASS
Running testHpdClass(frysk.hpd.TestPrint) ...PASS
Running testHpdArray(frysk.hpd.TestPrint) ...PASS
Running testHpdEnum(frysk.hpd.TestPrint) ...PASS
Running testRegsCommand(frysk.hpd.TestRegs) ...ERROR
  java.lang.RuntimeException: getting task's executable
Running testReg(frysk.hpd.TestSetParser) ...PASS
Running testRange(frysk.hpd.TestSetParser) ...PASS
Running testState(frysk.hpd.TestSetParser) ...PASS
Running testExec(frysk.hpd.TestSetParser) ...PASS
Running testHpdTraceStack(frysk.hpd.TestStackCommands) ...PASS
Running testFhpdVirtualStackTrace(frysk.hpd.TestStackCommands) ...PASS
Running testCorefileByteBufferSlice(frysk.proc.dead.TestCorefileByteBuffer) ...PASS
Running testCoreFileByteBufferPeek(frysk.proc.dead.TestCorefileByteBuffer) ...PASS
Running testCoreFileByteBufferMapOverrun(frysk.proc.dead.TestCorefileByteBuffer) ...PASS
Running testCoreFileByteBufferMapUnderrun(frysk.proc.dead.TestCorefileByteBuffer) ...PASS
Running testCoreFileByteBufferSequentialGet(frysk.proc.dead.TestCorefileByteBuffer) ...PASS
Running testCoreFileByteBufferPeekArray(frysk.proc.dead.TestCorefileByteBuffer) ...PASS
Running testCoreFileByteBufferPoke(frysk.proc.dead.TestCorefileByteBuffer) ...PASS
Running testLinuxCoreFileMaps(frysk.proc.dead.TestLinuxCore) ...PASS
Running testLinuxCoreFileStackTrace(frysk.proc.dead.TestLinuxCore) ...PASS
Running testLinuxHostPopulation(frysk.proc.dead.TestLinuxCore) ...PASS
Running testLinuxProcPopulation(frysk.proc.dead.TestLinuxCore) ...PASS
Running testLinuxProcAuxV(frysk.proc.dead.TestLinuxCore) ...PASS
Running testLinuxTaskMemory(frysk.proc.dead.TestLinuxCore) ...PASS
Running testLinuxTaskPopulation(frysk.proc.dead.TestLinuxCore) ...PASS
Running testInsertedBreakpoint(frysk.proc.dead.TestLinuxCore) ...PASS
Running testSliceAddressBuffers(frysk.proc.live.TestByteBuffer) ...PASS
Running testSliceRegisterBuffers(frysk.proc.live.TestByteBuffer) ...PASS
Running testModifyRegisterBuffers(frysk.proc.live.TestByteBuffer) ...PASS
Running testModifyAddressBuffers(frysk.proc.live.TestByteBuffer) ...PASS
Running testAsyncRegisterBuffers(frysk.proc.live.TestByteBuffer) ...PASS
Running testAsyncAddressBuffers(frysk.proc.live.TestByteBuffer) ...PASS
Running testAddressBufferPeeks(frysk.proc.live.TestByteBuffer) ...PASS
Running testRegisterBufferPeeks(frysk.proc.live.TestByteBuffer) ...PASS
Running testAsyncPeeks(frysk.proc.live.TestByteBuffer) ...PASS
Running testAsycnPeeksRegisters(frysk.proc.live.TestByteBuffer) ...PASS
Running testBulkPutRegisterBuffers(frysk.proc.live.TestByteBuffer) ...PASS
Running testBulkPutAddressBuffers(frysk.proc.live.TestByteBuffer) ...PASS
Running testAbandonThenRemoveAckDaemon(frysk.proc.TestAbandon) ...PASS
Running testAbandonThenRemoveDetached(frysk.proc.TestAbandon) ...PASS
Running testAbandonThenRemoveAttached(frysk.proc.TestAbandon) ...PASS
Running testAbandonThenRemoveAckDaemonUpdateExecuted(frysk.proc.TestAbandon) ...PASS
Running testAbandonThenRemoveDetachedUpdateExecuted(frysk.proc.TestAbandon) ...PASS
Running testAbandonThenRemoveAttachedUpdateExecuted(frysk.proc.TestAbandon) ...PASS
Running testAbandonThenRemoveAckDaemonAddedTo(frysk.proc.TestAbandon) ...PASS
Running testAbandonThenRemoveDetachedAddedTo(frysk.proc.TestAbandon) ...PASS
Running testAbandonThenRemoveAttachedAddedTo(frysk.proc.TestAbandon) ...PASS
Running testAbandonThenRemoveAckDaemonDeletedFrom(frysk.proc.TestAbandon) ...PASS
Running testAbandonThenRemoveDetachedDeletedFrom(frysk.proc.TestAbandon) ...PASS
Running testAbandonThenRemoveAttachedDeletedFrom(frysk.proc.TestAbandon) ...PASS
Running testRemoveThenAbandonAckDaemon(frysk.proc.TestAbandon) ...PASS
Running testRemoveThenAbandonDetached(frysk.proc.TestAbandon) ...PASS
Running testRemoveThenAbandonAttached(frysk.proc.TestAbandon) ...PASS
Running testRemoveThenAbandonAckDaemonAddedTo(frysk.proc.TestAbandon) ...PASS
Running testRemoveThenAbandonDetachedAddedTo(frysk.proc.TestAbandon) ...PASS
Running testRemoveThenAbandonAttachedAddedTo(frysk.proc.TestAbandon) ...PASS
Running testRemoveThenAbandonAckDaemonUpdateExecuted(frysk.proc.TestAbandon) ...PASS
Running testRemoveThenAbandonDetachedUpdateExecuted(frysk.proc.TestAbandon) ...PASS
Running testRemoveThenAbandonAttachedUpdateExecuted(frysk.proc.TestAbandon) ...PASS
Running testRemoveThenAbandonAckDaemonDeletedFrom(frysk.proc.TestAbandon) ...PASS
Running testRemoveThenAbandonDetachedDeletedFrom(frysk.proc.TestAbandon) ...PASS
Running testRemoveThenAbandonAttachedDeletedFrom(frysk.proc.TestAbandon) ...PASS
Running testAbandonAndAbandon(frysk.proc.TestAbandon) ...PASS
Running testHitAndRun(frysk.proc.TestBreakpoints) ...PASS
Running testSteppingtestHitAndRun(frysk.proc.TestBreakpoints) ...UNRESOLVED
  http://sourceware.org/bugzilla/show_bug.cgi?id=4847
Running testInsertRemove(frysk.proc.TestBreakpoints) ...PASS
Running testSteppingtestInsertRemove(frysk.proc.TestBreakpoints) ...UNRESOLVED
  http://sourceware.org/bugzilla/show_bug.cgi?id=4847
Running testAddLots(frysk.proc.TestBreakpoints) ...PASS
Running testSteppingAddLots(frysk.proc.TestBreakpoints) ...UNRESOLVED
  http://sourceware.org/bugzilla/show_bug.cgi?id=4847
Running testProcBlockExec(frysk.proc.TestExec) ...PASS
Running testTaskBlockExec(frysk.proc.TestExec) ...PASS
Running testAttachedSingleExec(frysk.proc.TestExec) ...PASS
Running testAttachedMultipleParentExec(frysk.proc.TestExec) ...PASS
Running testAttachedMultipleChildExec(frysk.proc.TestExec) ...PASS
Running testFindProcDetached(frysk.proc.TestFindProc) ...PASS
Running testFindProcAttached(frysk.proc.TestFindProc) ...PASS
Running testFindProcAckDaemon(frysk.proc.TestFindProc) ...PASS
Running testFindAndRefreshFailed(frysk.proc.TestFindProc) ...PASS
Running testFindUsingRefresh(frysk.proc.TestFindProc) ...PASS
Running testGetSelf(frysk.proc.TestHostGet) ...PASS
Running testIdEquals(frysk.proc.TestId) ...PASS
Running testIdCompareTo(frysk.proc.TestId) ...PASS
Running testTaskId(frysk.proc.TestId) ...PASS
Running testProcId(frysk.proc.TestId) ...PASS
Running testBreakOnStartThenStepAllInstructions(frysk.proc.TestInstructions) ...PASS
Running testAllBreakpoints(frysk.proc.TestInstructions) ...PASS
Running testInsertAllBreakpointsAndStepAll(frysk.proc.TestInstructions) ...PASS
Running testIsa(frysk.proc.TestIsa) ...PASS
Running testIsaSingleton(frysk.proc.TestIsa) ...PASS
Running testAttachedCreateChild(frysk.proc.TestIsa) ...PASS
Running testAttachedCreateAttachedChild(frysk.proc.TestIsa) ...PASS
Running testAttachedCreateAttachedClone(frysk.proc.TestIsa) ...PASS
Running testAttachDetachAttachAgainDetachAgainAttachAgainAgain(frysk.proc.TestIsa) ...PASS
Running test64To32To64(frysk.proc.TestIsa) ...UNSUPPORTED
  32-on-64
Running testArbitraryISAInstantiation(frysk.proc.TestIsa) ...PASS
Running testMapGet(frysk.proc.TestMapGet) ...PASS
Running testMemoryReadWrite(frysk.proc.TestMemory) ...UNRESOLVED
  http://sourceware.org/bugzilla/show_bug.cgi?id=3725
Running testRequestRemoveAckDaemon(frysk.proc.TestProcForceDetach) ...PASS
Running testRequestRemoveDetached(frysk.proc.TestProcForceDetach) ...PASS
Running testMultiThreadedRequestRemoveAckDaemon(frysk.proc.TestProcForceDetach) ...PASS
Running testMultiThreadedRequestRemoveDetached(frysk.proc.TestProcForceDetach) ...PASS
Running testGetAuxv(frysk.proc.TestProcGet) ...PASS
Running testGetCommand(frysk.proc.TestProcGet) ...PASS
Running testGetTasks(frysk.proc.TestProcGet) ...PASS
Running testGetChildren(frysk.proc.TestProcGet) ...PASS
Running testGetCmdLine(frysk.proc.TestProcGet) ...PASS
Running testGetExe(frysk.proc.TestProcGet) ...PASS
Running testStoppedAckDaemon(frysk.proc.TestProcStopped) ...PASS
Running testStoppedDetached(frysk.proc.TestProcStopped) ...PASS
Running testStoppedAttached(frysk.proc.TestProcStopped) ...PASS
Running testRunningAckDaemon(frysk.proc.TestProcStopped) ...PASS
Running testRunningDetached(frysk.proc.TestProcStopped) ...PASS
Running testRunningAttached(frysk.proc.TestProcStopped) ...PASS
Running testMultiThreadedStoppedAckDaemon(frysk.proc.TestProcStopped) ...PASS
Running testMultiThreadedStoppedDetached(frysk.proc.TestProcStopped) ...PASS
Running testMultiThreadedStoppedAttached(frysk.proc.TestProcStopped) ...PASS
Running testMultiThreadedRunningAckDaemon(frysk.proc.TestProcStopped) ...PASS
Running testMultiThreadedRunningDetached(frysk.proc.TestProcStopped) ...PASS
Running testMultiThreadedRunningAttached(frysk.proc.TestProcStopped) ...PASS
Running testManyExistingThreadAttached(frysk.proc.TestProcTasksObserver) ...PASS
Running testSingleExistingCloneAttached(frysk.proc.TestProcTasksObserver) ...PASS
Running testCloneThenKillAttached(frysk.proc.TestProcTasksObserver) ...PASS
Running testDeleteAttached(frysk.proc.TestProcTasksObserver) ...PASS
Running testDoCloneAttached(frysk.proc.TestProcTasksObserver) ...PASS
Running testSingleExistingThreadAttached(frysk.proc.TestProcTasksObserver) ...PASS
Running testManyExistingThreadDetached(frysk.proc.TestProcTasksObserver) ...PASS
Running testSingleExistingCloneDetached(frysk.proc.TestProcTasksObserver) ...PASS
Running testCloneThenKillDetached(frysk.proc.TestProcTasksObserver) ...PASS
Running testDeleteDetached(frysk.proc.TestProcTasksObserver) ...PASS
Running testDoCloneDetached(frysk.proc.TestProcTasksObserver) ...PASS
Running testSingleExistingThreadDetached(frysk.proc.TestProcTasksObserver) ...PASS
Running testManyExistingThreadAckDaemon(frysk.proc.TestProcTasksObserver) ...PASS
Running testSingleExistingCloneAckDaemon(frysk.proc.TestProcTasksObserver) ...PASS
Running testCloneThenKillAckDaemon(frysk.proc.TestProcTasksObserver) ...PASS
Running testDeleteAckDaemon(frysk.proc.TestProcTasksObserver) ...PASS
Running testDoCloneAckDaemon(frysk.proc.TestProcTasksObserver) ...PASS
Running testSingleExistingThreadAckDaemon(frysk.proc.TestProcTasksObserver) ...PASS
Running testRepeatedHostRefresh(frysk.proc.TestRefresh) ...PASS
Running testHostRefresh(frysk.proc.TestRefresh) ...PASS
Running testProcRefresh(frysk.proc.TestRefresh) ...PASS
Running testParentChild(frysk.proc.TestRefresh) ...PASS
Running testRefreshDaemon(frysk.proc.TestRefresh) ...PASS
Running testExitLoosesChild(frysk.proc.TestRefresh) ...PASS
Running testRefreshZombie(frysk.proc.TestRefresh) ...PASS
Running testUnattachedSingleExec(frysk.proc.TestRefresh) ...PASS
Running testUnattachedMultipleExec(frysk.proc.TestRefresh) ...PASS
Running testRegMemModify(frysk.proc.TestRegisters) ...PASS
Running testCreateAttachedContinuedProc(frysk.proc.TestRun) ...PASS
Running testCreateAttachedStoppedProc(frysk.proc.TestRun) ...PASS
Running testSyscallRunning(frysk.proc.TestSyscallRunning) ...PASS
Running testIt(frysk.proc.TestSyscallSignal) ...PASS
Running testLinuxIa32(frysk.proc.TestSyscallsWithAudit) ...PASS
Running testLinuxPPC(frysk.proc.TestSyscallsWithAudit) ...PASS
Running testLinuxPPC64(frysk.proc.TestSyscallsWithAudit) ...PASS
Running testLinuxX86_64(frysk.proc.TestSyscallsWithAudit) ...PASS
Running testTaskCloneObserver(frysk.proc.TestTaskClonedObserver) ...PASS
Running testTaskForkedObserver(frysk.proc.TestTaskForkedObserver) ...PASS
Running testGetBlockers(frysk.proc.TestTaskObserverBlocked) ...PASS
Running testBlockedCloneUnblockChildFirst(frysk.proc.TestTaskObserverBlocked) ...PASS
Running testBlockedCloneUnblockParentFirst(frysk.proc.TestTaskObserverBlocked) ...PASS
Running testBlockedForkUnblockChildFirst(frysk.proc.TestTaskObserverBlocked) ...PASS
Running testBlockedForkUnblockParentFirst(frysk.proc.TestTaskObserverBlocked) ...PASS
Running testRefreshAfterUnblockedForkExits(frysk.proc.TestTaskObserverBlocked) ...PASS
Running testAddObserverAfterUnblock(frysk.proc.TestTaskObserverBlocked) ...PASS
Running testBlockingFibonacciClone(frysk.proc.TestTaskObserverBlocked) ...PASS
Running testBlockingFibonacciFork(frysk.proc.TestTaskObserverBlocked) ...PASS
Running testUnblockRunning(frysk.proc.TestTaskObserverBlocked) ...PASS
Running testCode(frysk.proc.TestTaskObserverCode) ...PASS
Running testCodeSignalInterrupt(frysk.proc.TestTaskObserverCode) ...PASS
Running testInstallCodeDuringCode(frysk.proc.TestTaskObserverCode) ...PASS
Running testCodeRemovedInHit(frysk.proc.TestTaskObserverCode) ...PASS
Running testBreakDivZero(frysk.proc.TestTaskObserverCode) ...PASS
Running testBreakIllegalAddress(frysk.proc.TestTaskObserverCode) ...PASS
Running testBreakIllegalInstruction(frysk.proc.TestTaskObserverCode) ...PASS
Running testBreakSignalTerminate(frysk.proc.TestTaskObserverCode) ...PASS
Running testBreakSignalIgnore(frysk.proc.TestTaskObserverCode) ...PASS
Running testViewBreakpointMemory(frysk.proc.TestTaskObserverCode) ...PASS
Running testViewBreakpointMap(frysk.proc.TestTaskObserverCode) ...PASS
Running testDetachFork(frysk.proc.TestTaskObserverDetach) ...PASS
Running testDetachClone(frysk.proc.TestTaskObserverDetach) ...PASS
Running testDetachExec(frysk.proc.TestTaskObserverDetach) ...PASS
Running testDetachSignal(frysk.proc.TestTaskObserverDetach) ...PASS
Running testInstructionAndCode(frysk.proc.TestTaskObserverInstructionAndCode) ...PASS
Running testInstruction(frysk.proc.TestTaskObserverInstruction) ...PASS
Running testFirstInstructionStep(frysk.proc.TestTaskObserverInstruction) ...PASS
Running testFirstInstructionSteppingEngine(frysk.proc.TestTaskObserverInstruction) ...PASS
Running testStepSigReturn(frysk.proc.TestTaskObserverInstructionSigReturn) ...PASS
Running testAttachDetachMainTask(frysk.proc.TestTaskObserver) ...PASS
Running testAttachDetachOtherTask(frysk.proc.TestTaskObserver) ...PASS
Running testAttachDetachManyTasks(frysk.proc.TestTaskObserver) ...PASS
Running testDetachExitingMainTask(frysk.proc.TestTaskObserver) ...PASS
Running testDetachExitingOtherTask(frysk.proc.TestTaskObserver) ...PASS
Running testAttachDeadMainTask(frysk.proc.TestTaskObserver) ...PASS
Running testAttachDeadOtherTask(frysk.proc.TestTaskObserver) ...PASS
Running testAttachDieingMainTask(frysk.proc.TestTaskObserver) ...PASS
Running testAttachDieingOtherTask(frysk.proc.TestTaskObserver) ...PASS
Running testAttachToAttachedMainTask(frysk.proc.TestTaskObserver) ...PASS
Running testAttachToAttachedOtherTask(frysk.proc.TestTaskObserver) ...PASS
Running testBackToBackAttachAttachMainTask(frysk.proc.TestTaskObserver) ...PASS
Running testBackToBackAttachAttachOtherTask(frysk.proc.TestTaskObserver) ...PASS
Running testBackToBackAttachDetachMainTask(frysk.proc.TestTaskObserver) ...PASS
Running testBackToBackAttachDetachOtherTask(frysk.proc.TestTaskObserver) ...PASS
Running testDeletedAttachMainTask(frysk.proc.TestTaskObserver) ...PASS
Running testDeletedAttachOtherTask(frysk.proc.TestTaskObserver) ...PASS
Running testDeleteUnattachedFromAttachedMain(frysk.proc.TestTaskObserver) ...PASS
Running testDeleteUnattachedFromDetachedMain(frysk.proc.TestTaskObserver) ...PASS
Running testExecSyscall(frysk.proc.TestTaskSyscallObserver) ...PASS
Running testForkSyscall(frysk.proc.TestTaskSyscallObserver) ...PASS
Running testCloneSyscall(frysk.proc.TestTaskSyscallObserver) ...PASS
Running testSyscallLoop(frysk.proc.TestTaskSyscallObserver) ...PASS
Running testCreateAttachedAddSyscallObserver(frysk.proc.TestTaskSyscallObserver) ...UNRESOLVED
  http://sourceware.org/bugzilla/show_bug.cgi?id=2915
Running testSyscalls(frysk.proc.TestTaskSyscallObserver) ...PASS
Running testSyscallOpen(frysk.proc.TestTaskSyscallObserver) ...PASS
Running testSyscallInterrupt(frysk.proc.TestTaskSyscallObserver) ...PASS
Running testSyscallInterruptRestart(frysk.proc.TestTaskSyscallObserver) ...PASS
Running testTerminateExit0(frysk.proc.TestTaskTerminateObserver) ...PASS
Running testTerminateExit47(frysk.proc.TestTaskTerminateObserver) ...PASS
Running testTerminateKillINT(frysk.proc.TestTaskTerminateObserver) ...PASS
Running testTerminateKillHUP(frysk.proc.TestTaskTerminateObserver) ...PASS
Running testTerminatingExit0(frysk.proc.TestTaskTerminateObserver) ...PASS
Running testTerminatingExit47(frysk.proc.TestTaskTerminateObserver) ...PASS
Running testTerminatingKillINT(frysk.proc.TestTaskTerminateObserver) ...PASS
Running testTerminatingKillHUP(frysk.proc.TestTaskTerminateObserver) ...PASS
Running testTerminatedExit0(frysk.proc.TestTaskTerminateObserver) ...PASS
Running testTerminatedExit47(frysk.proc.TestTaskTerminateObserver) ...PASS
Running testTerminatedKillINT(frysk.proc.TestTaskTerminateObserver) ...PASS
Running testTerminatedKillKILL(frysk.proc.TestTaskTerminateObserver) ...PASS
Running testTerminatedKillHUP(frysk.proc.TestTaskTerminateObserver) ...PASS
Running testAttachToUnJoinedTask(frysk.proc.TestTaskTerminateObserver) ...PASS
Running testVarValueChanged(frysk.rt.TestDisplayValue) ...PASS
Running testVarValueNotChanged(frysk.rt.TestDisplayValue) ...PASS
Running testVarOutOfScope(frysk.rt.TestDisplayValue) ...FAIL
  junit.framework.AssertionFailedError: Variable value at first breakpoint expected:<5> but was:<0>
Running testVarMasked(frysk.rt.TestDisplayValue) ...PASS
Running testVarNotInCurrentScope(frysk.rt.TestDisplayValue) ...PASS
Running testTaskStopped(frysk.rt.TestUpdatingDisplayValue) ...PASS
Running testValueChanged(frysk.rt.TestUpdatingDisplayValue) ...PASS
Running testFuncReturn(frysk.rt.TestUpdatingDisplayValue) ...PASS
Running testExceptionThrown(frysk.rt.TestUpdatingDisplayValue) ...UNRESOLVED
  http://sourceware.org/bugzilla/show_bug.cgi?id=4639
Running testLongjmp(frysk.rt.TestUpdatingDisplayValue) ...PASS
Running testTaskDead(frysk.rt.TestUpdatingDisplayValue) ...UNRESOLVED
  http://sourceware.org/bugzilla/show_bug.cgi?id=4952
Running testDisabled(frysk.rt.TestUpdatingDisplayValue) ...PASS
Running testEnabledExprUnavailable(frysk.rt.TestUpdatingDisplayValue) ...PASS
Running testInnerTo(frysk.stack.TestFrameIdentifier) ...PASS
Running testOuterTo(frysk.stack.TestFrameIdentifier) ...PASS
Running testEquals(frysk.stack.TestFrameIdentifier) ...PASS
Running testAttached(frysk.stack.TestFrame) ...PASS
Running testFrameSame(frysk.stack.TestFrame) ...PASS
Running testContinueNotSame(frysk.stack.TestFrame) ...PASS
Running testOneSymbol(frysk.stack.TestFrameSymbol) ...PASS
Running testBacktrace(frysk.stack.TestStackBacktrace) ...UNRESOLVED
  http://sourceware.org/bugzilla/show_bug.cgi?id=4468
Running testThreadedBacktrace(frysk.stack.TestStackBacktrace) ...FAIL
  junit.framework.ComparisonFailure: expected:<_start> but was:<[unknown]>
Running testFramePushing(frysk.stack.TestStackBacktrace) ...UNRESOLVED
  http://sourceware.org/bugzilla/show_bug.cgi?id=4059
Running testFramePopping(frysk.stack.TestStackBacktrace) ...UNRESOLVED
  http://sourceware.org/bugzilla/show_bug.cgi?id=4059
Running testInstructionStepping(frysk.stepping.TestSteppingEngine) ...PASS
Running testInstructionSteppingList(frysk.stepping.TestSteppingEngine) ...PASS
Running testLineStepping(frysk.stepping.TestSteppingEngine) ...PASS
Running testLineSteppingList(frysk.stepping.TestSteppingEngine) ...PASS
Running testStepOver(frysk.stepping.TestSteppingEngine) ...PASS
Running testInstructionNext(frysk.stepping.TestSteppingEngine) ...PASS
Running testStepOut(frysk.stepping.TestSteppingEngine) ...PASS
Running testStepAdvance(frysk.stepping.TestSteppingEngine) ...PASS
Running testBreakpointing(frysk.stepping.TestSteppingEngine) ...PASS
Running testStepIntoMissingThread(frysk.stepping.TestSteppingEngine) ...UNRESOLVED
  http://sourceware.org/bugzilla/show_bug.cgi?id=4956
Running testLineStepFunctionCall(frysk.stepping.TestStepping) ...PASS
Running testLineStepIfStatementPass(frysk.stepping.TestStepping) ...PASS
Running testLineStepIfStatementFail(frysk.stepping.TestStepping) ...PASS
Running testLineStepFunctionReturn(frysk.stepping.TestStepping) ...PASS
Running testStepSigLongJmp(frysk.stepping.TestStepping) ...PASS
Running testStepGoto(frysk.stepping.TestStepping) ...PASS
Running testStepSigRaise(frysk.stepping.TestStepping) ...UNRESOLVED
  http://sourceware.org/bugzilla/show_bug.cgi?id=4237
Running testASMSingleStep(frysk.stepping.TestStepping) ...PASS
Running testASMMultiStep(frysk.stepping.TestStepping) ...PASS
Running testASMJump(frysk.stepping.TestStepping) ...PASS
Running testFunctionEntry(frysk.stepping.TestStepping) ...PASS
Running testASMFunctionReturn(frysk.stepping.TestStepping) ...PASS
Running testASMFunctionStepOver(frysk.stepping.TestStepping) ...PASS
Running testASMFunctionStepOut(frysk.stepping.TestStepping) ...PASS
Running testFramelessFunctionEntry(frysk.stepping.TestStepping) ...FAIL
  junit.framework.AssertionFailedError: Line information present
Running testASMFramelessFunctionStepOver(frysk.stepping.TestStepping) ...FAIL
  junit.framework.AssertionFailedError: Line information present
Running testASMFramelessFunctionStepOut(frysk.stepping.TestStepping) ...FAIL
  junit.framework.AssertionFailedError: Line information present
Running testASMFramelessFunctionCall(frysk.stepping.TestStepping) ...FAIL
  junit.framework.AssertionFailedError: Line information present
Running testASMFramelessFunctionReturn(frysk.stepping.TestStepping) ...FAIL
  junit.framework.AssertionFailedError: Line information present
Running testDebug(frysk.symtab.TestSymbol) ...PASS
Running testNoDebug(frysk.symtab.TestSymbol) ...PASS
Running testStripped(frysk.symtab.TestSymbol) ...PASS
Running testStaticDebug(frysk.symtab.TestSymbol) ...PASS
Running testStaticNoDebug(frysk.symtab.TestSymbol) ...PASS
Running testStaticStripped(frysk.symtab.TestSymbol) ...PASS
Running testNoSize(frysk.symtab.TestSymbol) ...FAIL
  junit.framework.ComparisonFailure: symbol name expected:<global_st_size_0> but was:<[unknown]>
Running testNoDebugNoSize(frysk.symtab.TestSymbol) ...FAIL
  junit.framework.ComparisonFailure: symbol name expected:<global_st_size_0> but was:<[unknown]>
Running testStrippedNoSize(frysk.symtab.TestSymbol) ...PASS
Running testStaticNoSize(frysk.symtab.TestSymbol) ...FAIL
  junit.framework.ComparisonFailure: symbol name expected:<local_st_size_0> but was:<[unknown]>
Running testStaticNoDebugNoSize(frysk.symtab.TestSymbol) ...FAIL
  junit.framework.ComparisonFailure: symbol name expected:<local_st_size_0> but was:<[unknown]>
Running testStaticStrippedNoSize(frysk.symtab.TestSymbol) ...PASS
Running testGlobalInGlobal(frysk.symtab.TestSymbol) ...PASS
Running testLocalInGlobal(frysk.symtab.TestSymbol) ...FAIL
  junit.framework.ComparisonFailure: symbol name expected:<local_in_global> but was:<global_outer>
Running testGlobalInLocal(frysk.symtab.TestSymbol) ...PASS
Running testLocalInLocal(frysk.symtab.TestSymbol) ...PASS
Running testGlobalAfterNested(frysk.symtab.TestSymbol) ...PASS
Running testLocalAfterNested(frysk.symtab.TestSymbol) ...PASS
Running testNoSymbolAfterGlobal(frysk.symtab.TestSymbol) ...PASS
Running testNoSymbolAfterLocal(frysk.symtab.TestSymbol) ...PASS
Running testGlobalSize0InGlobal(frysk.symtab.TestSymbol) ...PASS
Running testLocalSize0InGlobal(frysk.symtab.TestSymbol) ...PASS
Running testGlobalSize0InLocal(frysk.symtab.TestSymbol) ...PASS
Running testLocalSize0InLocal(frysk.symtab.TestSymbol) ...PASS
Running testGlobalAfterNestedSize0(frysk.symtab.TestSymbol) ...PASS
Running testLocalAfterNestedSize0(frysk.symtab.TestSymbol) ...PASS
Running testSmallGlobalAtLargeGlobal(frysk.symtab.TestSymbol) ...FAIL
  junit.framework.ComparisonFailure: symbol name expected:<small_global_at_large...> but was:<large_global_at_small...>
Running testSmallLocalAtLargeGlobal(frysk.symtab.TestSymbol) ...FAIL
  junit.framework.ComparisonFailure: symbol name expected:<small_local_at_large_glob...> but was:<large_global_at_small_loc...>
Running testSmallGlobalAtLargeLocal(frysk.symtab.TestSymbol) ...PASS
Running testSmallLocalAtLargeLocal(frysk.symtab.TestSymbol) ...FAIL
  junit.framework.ComparisonFailure: symbol name expected:<small_local_at_large...> but was:<large_local_at_small...>
Running testAfterGlobalContiningSize0(frysk.symtab.TestSymbol) ...PASS
Running testAfterLocalContiningSize0(frysk.symtab.TestSymbol) ...PASS
Running testCoreFileAtSignal(frysk.testbed.TestCoreFileAtSignal) ...UNRESOLVED
  http://sourceware.org/bugzilla/show_bug.cgi?id=4953
Running testSingleSignalWaiter(frysk.testbed.TestSignalWaiter) ...PASS
Running testMultiSignalWaiter(frysk.testbed.TestSignalWaiter) ...PASS
Running testCoreExe(frysk.util.TestCommandlineParser) ...PASS
Running testCore(frysk.util.TestCommandlineParser) ...PASS
Running testSingleThreadedCatch(frysk.util.TestFCatch) ...FAIL
  junit.framework.AssertionFailedError: #0 0x0000003a81030afa in sigsuspend () from /lib64/libc-2.6.so
#1 0x0000000000401819 in server () from /notnfs/swagiaal/frysks/frysk.merge/frysk-core/frysk/pkglibdir/funit-slave
#2 0x000000000040237f in main () from /notnfs/swagiaal/frysks/frysk.merge/frysk-core/frysk/pkglibdir/funit-slave
#3 0x0000003a8101dab4 in __libc_start_main () from /lib64/libc-2.6.so
#4 0x00000000004011e9 in [unknown] from /notnfs/swagiaal/frysks/frysk.merge/frysk-core/frysk/pkglibdir/funit-slave
should match: (#[\d]+ 0x[\da-f]+ in .*
)*#[\d]+ 0x[\da-f]+ in server \(\).*
#[\d]+ 0x[\da-f]+ in main \(\).*
#[\d]+ 0x[\da-f]+ in __libc_start_main \(\).*
#[\d]+ 0x[\da-f]+ in _start \(\).*

Running testCoreFileCreated(frysk.util.TestFCore) ...PASS
Running testElfCoreHeader(frysk.util.TestFCore) ...PASS
Running testProgramSegmentHeader(frysk.util.TestFCore) ...PASS
Running testGeneralPurposeRegisters(frysk.util.TestFCore) ...PASS
Running testFloatingPointRegisters(frysk.util.TestFCore) ...PASS
Running testXFloatingPointRegisters(frysk.util.TestFCore) ...UNRESOLVED
  http://sourceware.org/bugzilla/show_bug.cgi?id=4890
Running testAuxv(frysk.util.TestFCore) ...PASS
Running testSingleThreadedDetached(frysk.util.TestFStack) ...FAIL
  junit.framework.AssertionFailedError: Task #22497
#0 0x0000003a81030afa in sigsuspend () from /lib64/libc-2.6.so
#1 0x0000000000401819 in server () from /notnfs/swagiaal/frysks/frysk.merge/frysk-core/frysk/pkglibdir/funit-slave
#2 0x000000000040237f in main () from /notnfs/swagiaal/frysks/frysk.merge/frysk-core/frysk/pkglibdir/funit-slave
#3 0x0000003a8101dab4 in __libc_start_main () from /lib64/libc-2.6.so
#4 0x00000000004011e9 in [unknown] from /notnfs/swagiaal/frysks/frysk.merge/frysk-core/frysk/pkglibdir/funit-slave
should match: (Task #\d+
(#[\d]+ 0x[\da-f]+ in .*
)*#[\d]+ 0x[\da-f]+ in server \(\).*
#[\d]+ 0x[\da-f]+ in main \(\).*
#[\d]+ 0x[\da-f]+ in __libc_start_main \(\).*
#[\d]+ 0x[\da-f]+ in _start \(\).*
)(Task #\d+
(#[\d]+ 0x[\da-f]+ in .*
)*#[\d]+ 0x[\da-f]+ in server \(\).*
#[\d]+ 0x[\da-f]+ in start_thread \(\).*
#[\d]+ 0x[\da-f]+ in (__)?clone \(\).*
){0} threads
Running testSingleThreadedAckDaemon(frysk.util.TestFStack) ...FAIL
  junit.framework.AssertionFailedError: Task #22499
#0 0x0000003a81030afa in sigsuspend () from /lib64/libc-2.6.so
#1 0x0000000000401819 in server () from /notnfs/swagiaal/frysks/frysk.merge/frysk-core/frysk/pkglibdir/funit-slave
#2 0x000000000040237f in main () from /notnfs/swagiaal/frysks/frysk.merge/frysk-core/frysk/pkglibdir/funit-slave
#3 0x0000003a8101dab4 in __libc_start_main () from /lib64/libc-2.6.so
#4 0x00000000004011e9 in [unknown] from /notnfs/swagiaal/frysks/frysk.merge/frysk-core/frysk/pkglibdir/funit-slave
should match: (Task #\d+
(#[\d]+ 0x[\da-f]+ in .*
)*#[\d]+ 0x[\da-f]+ in server \(\).*
#[\d]+ 0x[\da-f]+ in main \(\).*
#[\d]+ 0x[\da-f]+ in __libc_start_main \(\).*
#[\d]+ 0x[\da-f]+ in _start \(\).*
)(Task #\d+
(#[\d]+ 0x[\da-f]+ in .*
)*#[\d]+ 0x[\da-f]+ in server \(\).*
#[\d]+ 0x[\da-f]+ in start_thread \(\).*
#[\d]+ 0x[\da-f]+ in (__)?clone \(\).*
){0} threads
Running testMultiThreadedDetached(frysk.util.TestFStack) ...FAIL
  junit.framework.AssertionFailedError: Task #22500
#0 0x0000003a81030b1f in sigsuspend () from /lib64/libc-2.6.so
#1 0x0000000000401819 in server () from /notnfs/swagiaal/frysks/frysk.merge/frysk-core/frysk/pkglibdir/funit-slave
#2 0x000000000040237f in main () from /notnfs/swagiaal/frysks/frysk.merge/frysk-core/frysk/pkglibdir/funit-slave
#3 0x0000003a8101dab4 in __libc_start_main () from /lib64/libc-2.6.so
#4 0x00000000004011e9 in [unknown] from /notnfs/swagiaal/frysks/frysk.merge/frysk-core/frysk/pkglibdir/funit-slave
Task #22501
#0 0x0000003a81030b1f in sigsuspend () from /lib64/libc-2.6.so
#1 0x0000000000401819 in server () from /notnfs/swagiaal/frysks/frysk.merge/frysk-core/frysk/pkglibdir/funit-slave
#2 0x0000003a820062f7 in start_thread () from /lib64/libpthread-2.6.so
#3 0x0000003a810d0fbd in clone () from /lib64/libc-2.6.so
Task #22502
#0 0x0000003a81030b1f in sigsuspend () from /lib64/libc-2.6.so
#1 0x0000000000401819 in server () from /notnfs/swagiaal/frysks/frysk.merge/frysk-core/frysk/pkglibdir/funit-slave
#2 0x0000003a820062f7 in start_thread () from /lib64/libpthread-2.6.so
#3 0x0000003a810d0fbd in clone () from /lib64/libc-2.6.so
should match: (Task #\d+
(#[\d]+ 0x[\da-f]+ in .*
)*#[\d]+ 0x[\da-f]+ in server \(\).*
#[\d]+ 0x[\da-f]+ in main \(\).*
#[\d]+ 0x[\da-f]+ in __libc_start_main \(\).*
#[\d]+ 0x[\da-f]+ in _start \(\).*
)(Task #\d+
(#[\d]+ 0x[\da-f]+ in .*
)*#[\d]+ 0x[\da-f]+ in server \(\).*
#[\d]+ 0x[\da-f]+ in start_thread \(\).*
#[\d]+ 0x[\da-f]+ in (__)?clone \(\).*
){2} threads
Running testMultiThreadedAckDaemon(frysk.util.TestFStack) ...FAIL
  junit.framework.AssertionFailedError: Task #22504
#0 0x0000003a81030b1f in sigsuspend () from /lib64/libc-2.6.so
#1 0x0000000000401819 in server () from /notnfs/swagiaal/frysks/frysk.merge/frysk-core/frysk/pkglibdir/funit-slave
#2 0x000000000040237f in main () from /notnfs/swagiaal/frysks/frysk.merge/frysk-core/frysk/pkglibdir/funit-slave
#3 0x0000003a8101dab4 in __libc_start_main () from /lib64/libc-2.6.so
#4 0x00000000004011e9 in [unknown] from /notnfs/swagiaal/frysks/frysk.merge/frysk-core/frysk/pkglibdir/funit-slave
Task #22505
#0 0x0000003a81030b1f in sigsuspend () from /lib64/libc-2.6.so
#1 0x0000000000401819 in server () from /notnfs/swagiaal/frysks/frysk.merge/frysk-core/frysk/pkglibdir/funit-slave
#2 0x0000003a820062f7 in start_thread () from /lib64/libpthread-2.6.so
#3 0x0000003a810d0fbd in clone () from /lib64/libc-2.6.so
Task #22506
#0 0x0000003a81030b1f in sigsuspend () from /lib64/libc-2.6.so
#1 0x0000000000401819 in server () from /notnfs/swagiaal/frysks/frysk.merge/frysk-core/frysk/pkglibdir/funit-slave
#2 0x0000003a820062f7 in start_thread () from /lib64/libpthread-2.6.so
#3 0x0000003a810d0fbd in clone () from /lib64/libc-2.6.so
should match: (Task #\d+
(#[\d]+ 0x[\da-f]+ in .*
)*#[\d]+ 0x[\da-f]+ in server \(\).*
#[\d]+ 0x[\da-f]+ in main \(\).*
#[\d]+ 0x[\da-f]+ in __libc_start_main \(\).*
#[\d]+ 0x[\da-f]+ in _start \(\).*
)(Task #\d+
(#[\d]+ 0x[\da-f]+ in .*
)*#[\d]+ 0x[\da-f]+ in server \(\).*
#[\d]+ 0x[\da-f]+ in start_thread \(\).*
#[\d]+ 0x[\da-f]+ in (__)?clone \(\).*
){2} threads
Running testCore(frysk.util.TestFStack) ...UNRESOLVED
  http://sourceware.org/bugzilla/show_bug.cgi?id=4581
Running testArrayOfNumber(frysk.value.TestArray) ...PASS
Running testArrayOfArrayOfNumber(frysk.value.TestArray) ...PASS
Running testFromBigInt(frysk.value.TestBigFloat) ...PASS
Running testFromBytes(frysk.value.TestBigFloat) ...PASS
Running testToByteArray(frysk.value.TestBigFloat) ...PASS
Running testBigStructure(frysk.value.TestClass) ...PASS
Running testLittleStructure(frysk.value.TestClass) ...PASS
Running testNextedStructure(frysk.value.TestClass) ...PASS
Running testNamelessFields(frysk.value.TestClass) ...PASS
Running testEnumType(frysk.value.TestEnum) ...PASS
Running testEnum(frysk.value.TestEnum) ...PASS
Running testEnumInt(frysk.value.TestEnum) ...PASS
Running testBigIntegerValue(frysk.value.TestFloatingPoint) ...PASS
Running testBigFloatValue(frysk.value.TestFloatingPoint) ...PASS
Running testNatural(frysk.value.TestFormat) ...PASS
Running testDecimal(frysk.value.TestFormat) ...PASS
Running testHexadecimal(frysk.value.TestFormat) ...PASS
Running testOctal(frysk.value.TestFormat) ...PASS
Running testBinary(frysk.value.TestFormat) ...PASS
Running testGetSignedBig(frysk.value.TestIntegerType) ...PASS
Running testGetSignedLittle(frysk.value.TestIntegerType) ...PASS
Running testGetUnsignedBig(frysk.value.TestIntegerType) ...PASS
Running testGetUnsignedLittle(frysk.value.TestIntegerType) ...PASS
Running testGetEnumBig(frysk.value.TestIntegerType) ...PASS
Running testGetEnumLittle(frysk.value.TestIntegerType) ...PASS
Running testPutSignedPositiveBig(frysk.value.TestIntegerType) ...PASS
Running testPutSignedNegativeBig(frysk.value.TestIntegerType) ...PASS
Running testPutSignedPositiveLittle(frysk.value.TestIntegerType) ...PASS
Running testPutSignedNegativeLittle(frysk.value.TestIntegerType) ...PASS
Running testPutUnsignedPositiveBig(frysk.value.TestIntegerType) ...PASS
Running testPutUnsignedNegativeBig(frysk.value.TestIntegerType) ...PASS
Running testPutUnsignedPositiveLittle(frysk.value.TestIntegerType) ...PASS
Running testPutUnsignedNegativeLittle(frysk.value.TestIntegerType) ...PASS
Running testPutEnumPositiveBig(frysk.value.TestIntegerType) ...PASS
Running testPutEnumPositiveLittle(frysk.value.TestIntegerType) ...PASS
Running testBigFloatValue(frysk.value.TestIntegerType) ...PASS
Running testBigIntegerValue(frysk.value.TestIntegerType) ...PASS
Running testGetBig(frysk.value.TestLocation) ...PASS
Running testGetLittle(frysk.value.TestLocation) ...PASS
Running testPutBig(frysk.value.TestLocation) ...PASS
Running testPutLittle(frysk.value.TestLocation) ...PASS
Running testPutBigLong(frysk.value.TestLocation) ...PASS
Running testPutLittleLong(frysk.value.TestLocation) ...PASS
Running testPutBigShort(frysk.value.TestLocation) ...PASS
Running testPutLittleShort(frysk.value.TestLocation) ...PASS
Running testSlice(frysk.value.TestLocation) ...PASS
Running testNumber(frysk.value.TestValue) ...PASS
Running testIntOps(frysk.value.TestValue) ...PASS
Running testFloatOps(frysk.value.TestValue) ...PASS

Time: 13.269
There were 19 unresolved:
  http://sourceware.org/bugzilla/show_bug.cgi?id=4059
  http://sourceware.org/bugzilla/show_bug.cgi?id=4677
  http://sourceware.org/bugzilla/show_bug.cgi?id=4956
  http://sourceware.org/bugzilla/show_bug.cgi?id=4676
  http://sourceware.org/bugzilla/show_bug.cgi?id=3841
  http://sourceware.org/bugzilla/show_bug.cgi?id=4953
  http://sourceware.org/bugzilla/show_bug.cgi?id=4952
  http://sourceware.org/bugzilla/show_bug.cgi?id=4847
  http://sourceware.org/bugzilla/show_bug.cgi?id=4951
  http://sourceware.org/bugzilla/show_bug.cgi?id=4950
  http://sourceware.org/bugzilla/show_bug.cgi?id=2915
  http://sourceware.org/bugzilla/show_bug.cgi?id=4237
  http://sourceware.org/bugzilla/show_bug.cgi?id=4468
  http://sourceware.org/bugzilla/show_bug.cgi?id=4639
  http://sourceware.org/bugzilla/show_bug.cgi?id=4949
  http://sourceware.org/bugzilla/show_bug.cgi?id=4914
  http://sourceware.org/bugzilla/show_bug.cgi?id=3725
  http://sourceware.org/bugzilla/show_bug.cgi?id=4581
  http://sourceware.org/bugzilla/show_bug.cgi?id=4890
There were 2 unsupported:
  32-on-64
  disassembler
There was 1 error:
1) testRegsCommand(frysk.hpd.TestRegs)java.lang.RuntimeException: getting task's executable
   at frysk.proc.IsaFactory.getIsa(TestRunner)
   at frysk.proc.IsaFactory.getIsa(TestRunner)
   at frysk.proc.live.LinuxTask.sendrecIsa(TestRunner)
   at frysk.proc.Task.getIsa(TestRunner)
   at frysk.hpd.TestRegs.testRegsCommand(TestRunner)
   at frysk.junit.Runner.runCases(TestRunner)
   at frysk.junit.Runner.runArchCases(TestRunner)
   at frysk.junit.Runner.runTestCases(TestRunner)
   at TestRunner.main(TestRunner)
Caused by: java.io.IOException: readlink failed
   at java.io.File.getCanonicalPath(libgcj.so.8rh)
   at frysk.proc.IsaFactory.getIsa(TestRunner)
   ...21 more
There were 20 failures:
1) testVarOutOfScope(frysk.rt.TestDisplayValue)junit.framework.AssertionFailedError: Variable value at first breakpoint expected:<5> but was:<0>
   at frysk.rt.TestDisplayValue.testVarOutOfScope(TestRunner)
   at frysk.junit.Runner.runCases(TestRunner)
   at frysk.junit.Runner.runArchCases(TestRunner)
   at frysk.junit.Runner.runTestCases(TestRunner)
   at TestRunner.main(TestRunner)
2) testThreadedBacktrace(frysk.stack.TestStackBacktrace)junit.framework.ComparisonFailure: expected:<_start> but was:<[unknown]>
   at frysk.stack.TestStackBacktrace.frameAssertions(TestRunner)
   at frysk.stack.TestStackBacktrace.handleTask(TestRunner)
   at frysk.stack.TestStackBacktrace$LockObserver.update(TestRunner)
   at java.util.Observable.notifyObservers(libgcj.so.8rh)
   at frysk.stepping.SteppingEngine$SteppingObserver.updateExecuted(TestRunner)
   at frysk.proc.Proc$14.add(TestRunner)
   at frysk.proc.live.LinuxTaskState$Attached.handleAddObservation(TestRunner)
   at frysk.proc.Task.handleAddObservation(TestRunner)
   at frysk.proc.TaskObservation.handleAdd(TestRunner)
   at frysk.proc.live.LinuxProcState$Attaching.allAttached(TestRunner)
   at frysk.proc.live.LinuxProcState$Attaching.access$0(TestRunner)
   at frysk.proc.live.LinuxProcState$Attaching$ToOtherTasks.handleTaskAttachCompleted(TestRunner)
   at frysk.proc.Proc$4.execute(TestRunner)
   at frysk.event.EventLoop.runEventLoop(TestRunner)
   at frysk.event.EventLoop.runPolling(TestRunner)
   at frysk.testbed.TestLib.assertRunUntilStop(TestRunner)
   at frysk.testbed.TestLib.assertRunUntilStop(TestRunner)
   at frysk.stack.TestStackBacktrace.testThreadedBacktrace(TestRunner)
   at frysk.junit.Runner.runCases(TestRunner)
   at frysk.junit.Runner.runArchCases(TestRunner)
   at frysk.junit.Runner.runTestCases(TestRunner)
   at TestRunner.main(TestRunner)
3) testFramelessFunctionEntry(frysk.stepping.TestStepping)junit.framework.AssertionFailedError: Line information present
   at frysk.stepping.TestStepping.testFramelessFunctionEntry(TestRunner)
   at frysk.junit.Runner.runCases(TestRunner)
   at frysk.junit.Runner.runArchCases(TestRunner)
   at frysk.junit.Runner.runTestCases(TestRunner)
   at TestRunner.main(TestRunner)
4) testASMFramelessFunctionStepOver(frysk.stepping.TestStepping)junit.framework.AssertionFailedError: Line information present
   at frysk.stepping.TestStepping.testASMFramelessFunctionStepOver(TestRunner)
   at frysk.junit.Runner.runCases(TestRunner)
   at frysk.junit.Runner.runArchCases(TestRunner)
   at frysk.junit.Runner.runTestCases(TestRunner)
   at TestRunner.main(TestRunner)
5) testASMFramelessFunctionStepOut(frysk.stepping.TestStepping)junit.framework.AssertionFailedError: Line information present
   at frysk.stepping.TestStepping.testASMFramelessFunctionStepOut(TestRunner)
   at frysk.junit.Runner.runCases(TestRunner)
   at frysk.junit.Runner.runArchCases(TestRunner)
   at frysk.junit.Runner.runTestCases(TestRunner)
   at TestRunner.main(TestRunner)
6) testASMFramelessFunctionCall(frysk.stepping.TestStepping)junit.framework.AssertionFailedError: Line information present
   at frysk.stepping.TestStepping.testASMFramelessFunctionCall(TestRunner)
   at frysk.junit.Runner.runCases(TestRunner)
   at frysk.junit.Runner.runArchCases(TestRunner)
   at frysk.junit.Runner.runTestCases(TestRunner)
   at TestRunner.main(TestRunner)
7) testASMFramelessFunctionReturn(frysk.stepping.TestStepping)junit.framework.AssertionFailedError: Line information present
   at frysk.stepping.TestStepping.testASMFramelessFunctionReturn(TestRunner)
   at frysk.junit.Runner.runCases(TestRunner)
   at frysk.junit.Runner.runArchCases(TestRunner)
   at frysk.junit.Runner.runTestCases(TestRunner)
   at TestRunner.main(TestRunner)
8) testNoSize(frysk.symtab.TestSymbol)junit.framework.ComparisonFailure: symbol name expected:<global_st_size_0> but was:<[unknown]>
   at frysk.symtab.TestSymbol.symbolTest(TestRunner)
   at frysk.symtab.TestSymbol.testNoSize(TestRunner)
   at frysk.junit.Runner.runCases(TestRunner)
   at frysk.junit.Runner.runArchCases(TestRunner)
   at frysk.junit.Runner.runTestCases(TestRunner)
   at TestRunner.main(TestRunner)
9) testNoDebugNoSize(frysk.symtab.TestSymbol)junit.framework.ComparisonFailure: symbol name expected:<global_st_size_0> but was:<[unknown]>
   at frysk.symtab.TestSymbol.symbolTest(TestRunner)
   at frysk.symtab.TestSymbol.testNoDebugNoSize(TestRunner)
   at frysk.junit.Runner.runCases(TestRunner)
   at frysk.junit.Runner.runArchCases(TestRunner)
   at frysk.junit.Runner.runTestCases(TestRunner)
   at TestRunner.main(TestRunner)
10) testStaticNoSize(frysk.symtab.TestSymbol)junit.framework.ComparisonFailure: symbol name expected:<local_st_size_0> but was:<[unknown]>
   at frysk.symtab.TestSymbol.symbolTest(TestRunner)
   at frysk.symtab.TestSymbol.testStaticNoSize(TestRunner)
   at frysk.junit.Runner.runCases(TestRunner)
   at frysk.junit.Runner.runArchCases(TestRunner)
   at frysk.junit.Runner.runTestCases(TestRunner)
   at TestRunner.main(TestRunner)
11) testStaticNoDebugNoSize(frysk.symtab.TestSymbol)junit.framework.ComparisonFailure: symbol name expected:<local_st_size_0> but was:<[unknown]>
   at frysk.symtab.TestSymbol.symbolTest(TestRunner)
   at frysk.symtab.TestSymbol.testStaticNoDebugNoSize(TestRunner)
   at frysk.junit.Runner.runCases(TestRunner)
   at frysk.junit.Runner.runArchCases(TestRunner)
   at frysk.junit.Runner.runTestCases(TestRunner)
   at TestRunner.main(TestRunner)
12) testLocalInGlobal(frysk.symtab.TestSymbol)junit.framework.ComparisonFailure: symbol name expected:<local_in_global> but was:<global_outer>
   at frysk.symtab.TestSymbol.symbolTest(TestRunner)
   at frysk.symtab.TestSymbol.symbolTest(TestRunner)
   at frysk.symtab.TestSymbol.testLocalInGlobal(TestRunner)
   at frysk.junit.Runner.runCases(TestRunner)
   at frysk.junit.Runner.runArchCases(TestRunner)
   at frysk.junit.Runner.runTestCases(TestRunner)
   at TestRunner.main(TestRunner)
13) testSmallGlobalAtLargeGlobal(frysk.symtab.TestSymbol)junit.framework.ComparisonFailure: symbol name expected:<small_global_at_large...> but was:<large_global_at_small...>
   at frysk.symtab.TestSymbol.symbolTest(TestRunner)
   at frysk.symtab.TestSymbol.symbolTest(TestRunner)
   at frysk.symtab.TestSymbol.testSmallGlobalAtLargeGlobal(TestRunner)
   at frysk.junit.Runner.runCases(TestRunner)
   at frysk.junit.Runner.runArchCases(TestRunner)
   at frysk.junit.Runner.runTestCases(TestRunner)
   at TestRunner.main(TestRunner)
14) testSmallLocalAtLargeGlobal(frysk.symtab.TestSymbol)junit.framework.ComparisonFailure: symbol name expected:<small_local_at_large_glob...> but was:<large_global_at_small_loc...>
   at frysk.symtab.TestSymbol.symbolTest(TestRunner)
   at frysk.symtab.TestSymbol.symbolTest(TestRunner)
   at frysk.symtab.TestSymbol.testSmallLocalAtLargeGlobal(TestRunner)
   at frysk.junit.Runner.runCases(TestRunner)
   at frysk.junit.Runner.runArchCases(TestRunner)
   at frysk.junit.Runner.runTestCases(TestRunner)
   at TestRunner.main(TestRunner)
15) testSmallLocalAtLargeLocal(frysk.symtab.TestSymbol)junit.framework.ComparisonFailure: symbol name expected:<small_local_at_large...> but was:<large_local_at_small...>
   at frysk.symtab.TestSymbol.symbolTest(TestRunner)
   at frysk.symtab.TestSymbol.symbolTest(TestRunner)
   at frysk.symtab.TestSymbol.testSmallLocalAtLargeLocal(TestRunner)
   at frysk.junit.Runner.runCases(TestRunner)
   at frysk.junit.Runner.runArchCases(TestRunner)
   at frysk.junit.Runner.runTestCases(TestRunner)
   at TestRunner.main(TestRunner)
16) testSingleThreadedCatch(frysk.util.TestFCatch)junit.framework.AssertionFailedError: #0 0x0000003a81030afa in sigsuspend () from /lib64/libc-2.6.so
#1 0x0000000000401819 in server () from /notnfs/swagiaal/frysks/frysk.merge/frysk-core/frysk/pkglibdir/funit-slave
#2 0x000000000040237f in main () from /notnfs/swagiaal/frysks/frysk.merge/frysk-core/frysk/pkglibdir/funit-slave
#3 0x0000003a8101dab4 in __libc_start_main () from /lib64/libc-2.6.so
#4 0x00000000004011e9 in [unknown] from /notnfs/swagiaal/frysks/frysk.merge/frysk-core/frysk/pkglibdir/funit-slave
should match: (#[\d]+ 0x[\da-f]+ in .*
)*#[\d]+ 0x[\da-f]+ in server \(\).*
#[\d]+ 0x[\da-f]+ in main \(\).*
#[\d]+ 0x[\da-f]+ in __libc_start_main \(\).*
#[\d]+ 0x[\da-f]+ in _start \(\).*

   at frysk.util.TestFCatch.testSingleThreadedCatch(TestRunner)
   at frysk.junit.Runner.runCases(TestRunner)
   at frysk.junit.Runner.runArchCases(TestRunner)
   at frysk.junit.Runner.runTestCases(TestRunner)
   at TestRunner.main(TestRunner)
17) testSingleThreadedDetached(frysk.util.TestFStack)junit.framework.AssertionFailedError: Task #22497
#0 0x0000003a81030afa in sigsuspend () from /lib64/libc-2.6.so
#1 0x0000000000401819 in server () from /notnfs/swagiaal/frysks/frysk.merge/frysk-core/frysk/pkglibdir/funit-slave
#2 0x000000000040237f in main () from /notnfs/swagiaal/frysks/frysk.merge/frysk-core/frysk/pkglibdir/funit-slave
#3 0x0000003a8101dab4 in __libc_start_main () from /lib64/libc-2.6.so
#4 0x00000000004011e9 in [unknown] from /notnfs/swagiaal/frysks/frysk.merge/frysk-core/frysk/pkglibdir/funit-slave
should match: (Task #\d+
(#[\d]+ 0x[\da-f]+ in .*
)*#[\d]+ 0x[\da-f]+ in server \(\).*
#[\d]+ 0x[\da-f]+ in main \(\).*
#[\d]+ 0x[\da-f]+ in __libc_start_main \(\).*
#[\d]+ 0x[\da-f]+ in _start \(\).*
)(Task #\d+
(#[\d]+ 0x[\da-f]+ in .*
)*#[\d]+ 0x[\da-f]+ in server \(\).*
#[\d]+ 0x[\da-f]+ in start_thread \(\).*
#[\d]+ 0x[\da-f]+ in (__)?clone \(\).*
){0} threads
   at frysk.util.TestFStack.multiThreaded(TestRunner)
   at frysk.util.TestFStack.testSingleThreadedDetached(TestRunner)
   at frysk.junit.Runner.runCases(TestRunner)
   at frysk.junit.Runner.runArchCases(TestRunner)
   at frysk.junit.Runner.runTestCases(TestRunner)
   at TestRunner.main(TestRunner)
18) testSingleThreadedAckDaemon(frysk.util.TestFStack)junit.framework.AssertionFailedError: Task #22499
#0 0x0000003a81030afa in sigsuspend () from /lib64/libc-2.6.so
#1 0x0000000000401819 in server () from /notnfs/swagiaal/frysks/frysk.merge/frysk-core/frysk/pkglibdir/funit-slave
#2 0x000000000040237f in main () from /notnfs/swagiaal/frysks/frysk.merge/frysk-core/frysk/pkglibdir/funit-slave
#3 0x0000003a8101dab4 in __libc_start_main () from /lib64/libc-2.6.so
#4 0x00000000004011e9 in [unknown] from /notnfs/swagiaal/frysks/frysk.merge/frysk-core/frysk/pkglibdir/funit-slave
should match: (Task #\d+
(#[\d]+ 0x[\da-f]+ in .*
)*#[\d]+ 0x[\da-f]+ in server \(\).*
#[\d]+ 0x[\da-f]+ in main \(\).*
#[\d]+ 0x[\da-f]+ in __libc_start_main \(\).*
#[\d]+ 0x[\da-f]+ in _start \(\).*
)(Task #\d+
(#[\d]+ 0x[\da-f]+ in .*
)*#[\d]+ 0x[\da-f]+ in server \(\).*
#[\d]+ 0x[\da-f]+ in start_thread \(\).*
#[\d]+ 0x[\da-f]+ in (__)?clone \(\).*
){0} threads
   at frysk.util.TestFStack.multiThreaded(TestRunner)
   at frysk.util.TestFStack.testSingleThreadedAckDaemon(TestRunner)
   at frysk.junit.Runner.runCases(TestRunner)
   at frysk.junit.Runner.runArchCases(TestRunner)
   at frysk.junit.Runner.runTestCases(TestRunner)
   at TestRunner.main(TestRunner)
19) testMultiThreadedDetached(frysk.util.TestFStack)junit.framework.AssertionFailedError: Task #22500
#0 0x0000003a81030b1f in sigsuspend () from /lib64/libc-2.6.so
#1 0x0000000000401819 in server () from /notnfs/swagiaal/frysks/frysk.merge/frysk-core/frysk/pkglibdir/funit-slave
#2 0x000000000040237f in main () from /notnfs/swagiaal/frysks/frysk.merge/frysk-core/frysk/pkglibdir/funit-slave
#3 0x0000003a8101dab4 in __libc_start_main () from /lib64/libc-2.6.so
#4 0x00000000004011e9 in [unknown] from /notnfs/swagiaal/frysks/frysk.merge/frysk-core/frysk/pkglibdir/funit-slave
Task #22501
#0 0x0000003a81030b1f in sigsuspend () from /lib64/libc-2.6.so
#1 0x0000000000401819 in server () from /notnfs/swagiaal/frysks/frysk.merge/frysk-core/frysk/pkglibdir/funit-slave
#2 0x0000003a820062f7 in start_thread () from /lib64/libpthread-2.6.so
#3 0x0000003a810d0fbd in clone () from /lib64/libc-2.6.so
Task #22502
#0 0x0000003a81030b1f in sigsuspend () from /lib64/libc-2.6.so
#1 0x0000000000401819 in server () from /notnfs/swagiaal/frysks/frysk.merge/frysk-core/frysk/pkglibdir/funit-slave
#2 0x0000003a820062f7 in start_thread () from /lib64/libpthread-2.6.so
#3 0x0000003a810d0fbd in clone () from /lib64/libc-2.6.so
should match: (Task #\d+
(#[\d]+ 0x[\da-f]+ in .*
)*#[\d]+ 0x[\da-f]+ in server \(\).*
#[\d]+ 0x[\da-f]+ in main \(\).*
#[\d]+ 0x[\da-f]+ in __libc_start_main \(\).*
#[\d]+ 0x[\da-f]+ in _start \(\).*
)(Task #\d+
(#[\d]+ 0x[\da-f]+ in .*
)*#[\d]+ 0x[\da-f]+ in server \(\).*
#[\d]+ 0x[\da-f]+ in start_thread \(\).*
#[\d]+ 0x[\da-f]+ in (__)?clone \(\).*
){2} threads
   at frysk.util.TestFStack.multiThreaded(TestRunner)
   at frysk.util.TestFStack.testMultiThreadedDetached(TestRunner)
   at frysk.junit.Runner.runCases(TestRunner)
   at frysk.junit.Runner.runArchCases(TestRunner)
   at frysk.junit.Runner.runTestCases(TestRunner)
   at TestRunner.main(TestRunner)
20) testMultiThreadedAckDaemon(frysk.util.TestFStack)junit.framework.AssertionFailedError: Task #22504
#0 0x0000003a81030b1f in sigsuspend () from /lib64/libc-2.6.so
#1 0x0000000000401819 in server () from /notnfs/swagiaal/frysks/frysk.merge/frysk-core/frysk/pkglibdir/funit-slave
#2 0x000000000040237f in main () from /notnfs/swagiaal/frysks/frysk.merge/frysk-core/frysk/pkglibdir/funit-slave
#3 0x0000003a8101dab4 in __libc_start_main () from /lib64/libc-2.6.so
#4 0x00000000004011e9 in [unknown] from /notnfs/swagiaal/frysks/frysk.merge/frysk-core/frysk/pkglibdir/funit-slave
Task #22505
#0 0x0000003a81030b1f in sigsuspend () from /lib64/libc-2.6.so
#1 0x0000000000401819 in server () from /notnfs/swagiaal/frysks/frysk.merge/frysk-core/frysk/pkglibdir/funit-slave
#2 0x0000003a820062f7 in start_thread () from /lib64/libpthread-2.6.so
#3 0x0000003a810d0fbd in clone () from /lib64/libc-2.6.so
Task #22506
#0 0x0000003a81030b1f in sigsuspend () from /lib64/libc-2.6.so
#1 0x0000000000401819 in server () from /notnfs/swagiaal/frysks/frysk.merge/frysk-core/frysk/pkglibdir/funit-slave
#2 0x0000003a820062f7 in start_thread () from /lib64/libpthread-2.6.so
#3 0x0000003a810d0fbd in clone () from /lib64/libc-2.6.so
should match: (Task #\d+
(#[\d]+ 0x[\da-f]+ in .*
)*#[\d]+ 0x[\da-f]+ in server \(\).*
#[\d]+ 0x[\da-f]+ in main \(\).*
#[\d]+ 0x[\da-f]+ in __libc_start_main \(\).*
#[\d]+ 0x[\da-f]+ in _start \(\).*
)(Task #\d+
(#[\d]+ 0x[\da-f]+ in .*
)*#[\d]+ 0x[\da-f]+ in server \(\).*
#[\d]+ 0x[\da-f]+ in start_thread \(\).*
#[\d]+ 0x[\da-f]+ in (__)?clone \(\).*
){2} threads
   at frysk.util.TestFStack.multiThreaded(TestRunner)
   at frysk.util.TestFStack.testMultiThreadedAckDaemon(TestRunner)
   at frysk.junit.Runner.runCases(TestRunner)
   at frysk.junit.Runner.runArchCases(TestRunner)
   at frysk.junit.Runner.runTestCases(TestRunner)
   at TestRunner.main(TestRunner)

FAILURES!!!
Tests run: 507,  Failures: 20,  Errors: 1

Failed after run #0
FAIL: TestRunner
no suitable method `main' in class
FAIL: frysk/rt/TestDisplayValue
===================
2 of 2 tests failed
===================
make[2]: *** [check-TESTS] Error 1
make[2]: Leaving directory `/notnfs/swagiaal/frysks/frysk.merge/frysk-core'
make[1]: *** [check-am] Error 2
make[1]: Leaving directory `/notnfs/swagiaal/frysks/frysk.merge/frysk-core'
make: *** [check] Error 2

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

* Re: elfutils import
  2007-08-22 21:52 ` Roland McGrath
@ 2007-08-27 19:29   ` Sami Wagiaalla
  2007-08-27 20:21     ` Roland McGrath
  2007-08-28 13:25     ` Andrew Cagney
  0 siblings, 2 replies; 8+ messages in thread
From: Sami Wagiaalla @ 2007-08-27 19:29 UTC (permalink / raw)
  To: Roland McGrath; +Cc: frysk

[-- Attachment #1: Type: text/plain, Size: 472 bytes --]


> Please show me all the differences in that tree from the upstream elfutils.
> You should not be carrying any.
>   
Sorry for the late reply... I was away for a couple of days.

I dont think we plan to carry any of these differences.

But I attached the patch anways:

The following files contain conflicts:

configure.ac
libdwfl/dwfl_module.c
libdwfl/dwfl_module_addrsym.c
src/ldlex.c
tests/Makefile.am

ChangeLog
backends/ChangeLog
libdwfl/ChangeLog
tests/ChangeLog
[

[-- Attachment #2: cvsdiff --]
[-- Type: text/plain, Size: 448255 bytes --]

? cvsdiff
Index: ABOUT-NLS
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/ABOUT-NLS,v
retrieving revision 1.4
diff -u -r1.4 ABOUT-NLS
--- ABOUT-NLS	22 Aug 2007 17:11:07 -0000	1.4
+++ ABOUT-NLS	27 Aug 2007 19:21:40 -0000
@@ -1,10 +1,11 @@
-Notes on the Free Translation Project
-*************************************
+1 Notes on the Free Translation Project
+***************************************
 
-   Free software is going international!  The Free Translation Project
-is a way to get maintainers of free software, translators, and users all
-together, so that will gradually become able to speak many languages.
-A few packages already provide translations for their messages.
+Free software is going international!  The Free Translation Project is
+a way to get maintainers of free software, translators, and users all
+together, so that free software will gradually become able to speak many
+languages.  A few packages already provide translations for their
+messages.
 
    If you found this `ABOUT-NLS' file inside a distribution, you may
 assume that the distributed package does use GNU `gettext' internally,
@@ -15,41 +16,78 @@
    Installers will find here some useful hints.  These notes also
 explain how users should proceed for getting the programs to use the
 available translations.  They tell how people wanting to contribute and
-work at translations should contact the appropriate team.
+work on translations can contact the appropriate team.
 
    When reporting bugs in the `intl/' directory or bugs which may be
 related to internationalization, you should tell about the version of
 `gettext' which is used.  The information can be found in the
 `intl/VERSION' file, in internationalized packages.
 
-INSTALL Matters
-===============
+1.1 Quick configuration advice
+==============================
 
-   Some packages are "localizable" when properly installed; the
-programs they contain can be made to speak your own native language.
-Most such packages use GNU `gettext'.  Other packages have their own
-ways to internationalization, predating GNU `gettext'.
+If you want to exploit the full power of internationalization, you
+should configure it using
+
+     ./configure --with-included-gettext
+
+to force usage of internationalizing routines provided within this
+package, despite the existence of internationalizing capabilities in the
+operating system where this package is being installed.  So far, only
+the `gettext' implementation in the GNU C library version 2 provides as
+many features (such as locale alias, message inheritance, automatic
+charset conversion or plural form handling) as the implementation here.
+It is also not possible to offer this additional functionality on top
+of a `catgets' implementation.  Future versions of GNU `gettext' will
+very likely convey even more functionality.  So it might be a good idea
+to change to GNU `gettext' as soon as possible.
+
+   So you need _not_ provide this option if you are using GNU libc 2 or
+you have installed a recent copy of the GNU gettext package with the
+included `libintl'.
+
+1.2 INSTALL Matters
+===================
+
+Some packages are "localizable" when properly installed; the programs
+they contain can be made to speak your own native language.  Most such
+packages use GNU `gettext'.  Other packages have their own ways to
+internationalization, predating GNU `gettext'.
 
    By default, this package will be installed to allow translation of
 messages.  It will automatically detect whether the system already
-provides the GNU `gettext' functions.  If not, the GNU `gettext' own
-library will be used.  This library is wholly contained within this
-package, usually in the `intl/' subdirectory, so prior installation of
-the GNU `gettext' package is _not_ required.  Installers may use
-special options at configuration time for changing the default
-behaviour.  The command:
+provides the GNU `gettext' functions.  If not, the included GNU
+`gettext' library will be used.  This library is wholly contained
+within this package, usually in the `intl/' subdirectory, so prior
+installation of the GNU `gettext' package is _not_ required.
+Installers may use special options at configuration time for changing
+the default behaviour.  The commands:
 
+     ./configure --with-included-gettext
      ./configure --disable-nls
 
-will bypass any pre-existing `gettext' to _totally_ disable translation
-of messages.
+will, respectively, bypass any pre-existing `gettext' to use the
+internationalizing routines provided within this package, or else,
+_totally_ disable translation of messages.
+
+   When you already have GNU `gettext' installed on your system and run
+configure without an option for your new package, `configure' will
+probably detect the previously built and installed `libintl.a' file and
+will decide to use this.  This might not be desirable.  You should use
+the more recent version of the GNU `gettext' library.  I.e. if the file
+`intl/VERSION' shows that the library which comes with this package is
+more recent, you should use
+
+     ./configure --with-included-gettext
+
+to prevent auto-detection.
 
    The configuration process will not test for the `catgets' function
 and therefore it will not be used.  The reason is that even an
 emulation of `gettext' on top of `catgets' could not provide all the
 extensions of the GNU `gettext' library.
 
-   Internationalized packages have usually many `po/LL.po' files, where
+   Internationalized packages usually have many `po/LL.po' files, where
 LL gives an ISO 639 two-letter code identifying the language.  Unless
 translations have been forbidden at `configure' time by using the
 `--disable-nls' switch, all available translations are installed
@@ -58,10 +96,10 @@
 `LINGUAS' should then contain a space separated list of two-letter
 codes, stating which languages are allowed.
 
-Using This Package
-==================
+1.3 Using This Package
+======================
 
-   As a user, if your language has been installed for this package, you
+As a user, if your language has been installed for this package, you
 only have to set the `LANG' environment variable to the appropriate
 `LL_CC' combination.  Here `LL' is an ISO 639 two-letter language code,
 and `CC' is an ISO 3166 two-letter country code.  For example, let's
@@ -80,8 +118,8 @@
 language and `CC' denoting the country, is the one use on systems based
 on GNU libc.  On other systems, some variations of this scheme are
 used, such as `LL' or `LL_CC.ENCODING'.  You can get the list of
-locales supported by your system for your country by running the command
-`locale -a | grep '^LL''.
+locales supported by your system for your language by running the
+command `locale -a | grep '^LL''.
 
    Not all programs have translations for all languages.  By default, an
 English message is shown in place of a nonexistent translation.  If you
@@ -94,16 +132,23 @@
 read translations in German than English for when Swedish is not
 available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'.
 
+   Special advice for Norwegian users: The language code for Norwegian
+bokma*l changed from `no' to `nb' recently (in 2003).  During the
+transition period, while some message catalogs for this language are
+installed under `nb' and some older ones under `no', it's recommended
+for Norwegian users to set `LANGUAGE' to `nb:no' so that both newer and
+older translations are used.
+
    In the `LANGUAGE' environment variable, but not in the `LANG'
 environment variable, `LL_CC' combinations can be abbreviated as `LL'
 to denote the language's main dialect.  For example, `de' is equivalent
 to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT'
 (Portuguese as spoken in Portugal) in this context.
 
-Translating Teams
-=================
+1.4 Translating Teams
+=====================
 
-   For the Free Translation Project to be a success, we need interested
+For the Free Translation Project to be a success, we need interested
 people who like their own language and write it well, and who are also
 able to synergize with other translators speaking the same language.
 Each translation team has its own mailing list.  The up-to-date list of
@@ -127,429 +172,897 @@
 coordinator for all translator teams.
 
    The English team is special.  It works at improving and uniformizing
-the terminology in use.  Proven linguistic skill are praised more than
-programming skill, here.
+the terminology in use.  Proven linguistic skills are praised more than
+programming skills, here.
 
-Available Packages
-==================
+1.5 Available Packages
+======================
 
-   Languages are not equally supported in all packages.  The following
-matrix shows the current state of internationalization, as of May 2003.
-The matrix shows, in regard of each package, for which languages PO
-files have been submitted to translation coordination, with a
+Languages are not equally supported in all packages.  The following
+matrix shows the current state of internationalization, as of October
+2006.  The matrix shows, in regard of each package, for which languages
+PO files have been submitted to translation coordination, with a
 translation percentage of at least 50%.
 
-     Ready PO files       am az be bg ca cs da de el en en_GB eo es
-                        +-------------------------------------------+
-     a2ps               |       []          [] [] []                |
-     aegis              |                      ()                   |
-     anubis             |                                           |
-     ap-utils           |                                           |
-     bash               |                      []             [] [] |
-     batchelor          |                                           |
-     bfd                |                   []                   [] |
-     binutils           |                   []                   [] |
-     bison              |                   [] []                [] |
-     bluez-pin          |                []                   []    |
-     clisp              |                                           |
-     clisp              |                      []    []          [] |
-     coreutils          |             []    [] []                [] |
-     cpio               |                   [] []                [] |
-     darkstat           |                   ()                   [] |
-     diffutils          |             [] [] [] [] []          [] [] |
-     e2fsprogs          |                []    []                   |
-     enscript           |             []    [] []        []         |
-     error              |             []    [] []        []      [] |
-     fetchmail          |             [] () [] [] []             [] |
-     fileutils          |                   [] []                [] |
-     findutils          |             []    [] [] []          [] [] |
-     flex               |             []    [] []                [] |
-     gas                |                                        [] |
-     gawk               |             []    [] []                [] |
-     gcal               |             []                            |
-     gcc                |                   []                   [] |
-     gettext            |       []    []    [] []                [] |
-     gettext-runtime    |       []    []    [] []                [] |
-     gettext-tools      |                      []                [] |
-     gimp-print         |                [] [] []        []      [] |
-     gliv               |                                           |
-     glunarclock        |    []             [] []                   |
-     gnucash            |                      ()        []         |
-     gnucash-glossary   |                   [] ()                [] |
-     gnupg              |             [] ()    [] []          [] [] |
-     gpe-calendar       |                      []                   |
-     gpe-conf           |                      []                   |
-     gpe-contacts       |                      []                   |
-     gpe-edit           |                                           |
-     gpe-login          |                      []                   |
-     gpe-ownerinfo      |                      []                   |
-     gpe-sketchbook     |                      []                   |
-     gpe-timesheet      |                                           |
-     gpe-today          |                      []                   |
-     gpe-todo           |                      []                   |
-     gphoto2            |                [] [] []                [] |
-     gprof              |                   []                   [] |
-     gpsdrive           |                      ()    ()          () |
-     grep               |          [] []       [] []             [] |
-     gretl              |                                        [] |
-     hello              |             []    [] [] []          [] [] |
-     id-utils           |                   [] []                   |
-     indent             |             []       []             [] [] |
-     jpilot             |                [] [] []                [] |
-     jwhois             |                                        [] |
-     kbd                |                [] [] [] []             [] |
-     ld                 |                   []                   [] |
-     libc               |             [] [] [] [] []             [] |
-     libgpewidget       |                      []                   |
-     libiconv           |             []    [] []             [] [] |
-     lifelines          |                   [] ()                   |
-     lilypond           |                   []                      |
-     lingoteach         |                                           |
-     lingoteach_lessons |                      ()                () |
-     lynx               |             [] [] [] []                   |
-     m4                 |                [] [] [] []                |
-     mailutils          |             []                         [] |
-     make               |                   [] []                [] |
-     man-db             |             [] () [] []                () |
-     mysecretdiary      |                   [] []                [] |
-     nano               |             [] () [] []                [] |
-     nano_1_0           |             [] () [] []                [] |
-     opcodes            |                   []                   [] |
-     parted             |             [] [] [] []                [] |
-     ptx                |             []    [] []             [] [] |
-     python             |                                           |
-     radius             |                                           |
-     recode             |       []          [] [] []          [] [] |
-     screem             |                                           |
-     sed                |             []    [] []             [] [] |
-     sh-utils           |                   [] []                [] |
-     sharutils          |             [] [] [] [] []             [] |
-     sketch             |                   [] ()                [] |
-     soundtracker       |                   [] []                [] |
-     sp                 |                      []                   |
-     tar                |                [] [] []                [] |
-     texinfo            |                [] [] []             []    |
-     textutils          |             []    [] []                [] |
-     tin                |                      ()        ()         |
-     util-linux         |             [] [] [] []                [] |
-     vorbis-tools       |                [] []                   [] |
-     wastesedge         |                      ()                   |
-     wdiff              |             []    [] []                [] |
-     wget               |          [] [] [] [] [] []             [] |
-     xchat              |             []          []             [] |
-     xpad               |                                           |
-                        +-------------------------------------------+
-                          am az be bg ca cs da de el en en_GB eo es
-                           0  1  4  2 31 17 54 60 14  1   4   12 56
-     
-                          et fa fi fr ga gl he hr hu id it ja ko
-                        +----------------------------------------+
-     a2ps               | []    [] []                   ()    () |
-     aegis              |                                        |
-     anubis             |          []                            |
-     ap-utils           |          []                            |
-     bash               |          []             []             |
-     batchelor          |             []                         |
-     bfd                |          []                      []    |
-     binutils           |          []                      []    |
-     bison              | []       []                [] []       |
-     bluez-pin          |          [] []          [] []          |
-     clisp              |                                        |
-     clisp              |          []                            |
-     coreutils          | []       []                   [] []    |
-     cpio               |          []    []       []          [] |
-     darkstat           |          () []          [] []          |
-     diffutils          |       [] []    [] []    [] []    []    |
-     e2fsprogs          |                                        |
-     enscript           |          []          []                |
-     error              |       [] [] []          []             |
-     fetchmail          |                                  []    |
-     fileutils          | []       []             []    [] []    |
-     findutils          | []    [] [] [] []    [] [] [] [] [] [] |
-     flex               |          []                         [] |
-     gas                |          []                            |
-     gawk               |          []       []                   |
-     gcal               |          []                            |
-     gcc                |          []                            |
-     gettext            |          []                      [] [] |
-     gettext-runtime    |          []                []    [] [] |
-     gettext-tools      |                                  []    |
-     gimp-print         |          []                      []    |
-     gliv               |          ()                            |
-     glunarclock        |             [] []       []       []    |
-     gnucash            |                               []       |
-     gnucash-glossary   |                               []       |
-     gnupg              | []    [] []    []          [] [] []    |
-     gpe-calendar       |                            []          |
-     gpe-conf           |                                        |
-     gpe-contacts       |          []                            |
-     gpe-edit           |          []                []          |
-     gpe-login          |          []                            |
-     gpe-ownerinfo      |          []             [] []          |
-     gpe-sketchbook     |          []                            |
-     gpe-timesheet      |          [] []             []          |
-     gpe-today          |          [] []                         |
-     gpe-todo           |          []                []          |
-     gphoto2            |          []             []       []    |
-     gprof              |          []                []          |
-     gpsdrive           |          ()             []    () ()    |
-     grep               | []    [] [] [] [] [] [] [] [] [] []    |
-     gretl              |          []                            |
-     hello              | [] [] [] [] [] [] [] [] [] [] [] [] [] |
-     id-utils           |          []             [] []          |
-     indent             | []    [] []    []       [] [] [] []    |
-     jpilot             |          []                      ()    |
-     jwhois             |          []             [] [] []       |
-     kbd                |          []                            |
-     ld                 |          []                            |
-     libc               |       [] []    []       []       [] [] |
-     libgpewidget       |          [] []             []          |
-     libiconv           |       [] [] [] []    [] [] [] []       |
-     lifelines          |          ()                            |
-     lilypond           |          []                            |
-     lingoteach         |          []                []          |
-     lingoteach_lessons |                                        |
-     lynx               | []                      []    [] []    |
-     m4                 |          []    []          []    []    |
-     mailutils          |                                        |
-     make               |          []    [] [] []          [] [] |
-     man-db             |          []                   () ()    |
-     mysecretdiary      |          []                []          |
-     nano               |          []    []          [] []       |
-     nano_1_0           |          []    []          [] []       |
-     opcodes            |          []                []          |
-     parted             |          []    []                []    |
-     ptx                | []    [] [] [] []       [] []          |
-     python             |                                        |
-     radius             |                                        |
-     recode             |          []    [] []    [] [] []       |
-     screem             |                                        |
-     sed                | []       [] [] []       [] [] [] []    |
-     sh-utils           | []    [] []             []    [] []    |
-     sharutils          | []       []    []       []       []    |
-     sketch             |          []                            |
-     soundtracker       |          []    []    []                |
-     sp                 |          []                      ()    |
-     tar                | []    [] []    []    [] [] [] [] []    |
-     texinfo            |          []       [] []          []    |
-     textutils          |          []    []       []       [] [] |
-     tin                | []       ()                            |
-     util-linux         | []    [] []             []    () []    |
-     vorbis-tools       |          []                            |
-     wastesedge         |          ()                            |
-     wdiff              | []       []    []       [] []          |
-     wget               | []    [] []    [] [] [] []       []    |
-     xchat              | []       []                      []    |
-     xpad               |                                        |
-                        +----------------------------------------+
-                          et fa fi fr ga gl he hr hu id it ja ko
-                          20  1 15 73 14 24  8 10 30 31 19 31  9
-     
-                          lg lt lv ms nb nl nn no pl pt pt_BR ro
-                        +----------------------------------------+
-     a2ps               |          []    []    () () ()  []   [] |
-     aegis              |                ()                      |
-     anubis             |          []                         [] |
-     ap-utils           |                         ()             |
-     bash               |                                []      |
-     batchelor          |                                        |
-     bfd                |                                        |
-     binutils           |                                        |
-     bison              |          []    []              []   [] |
-     bluez-pin          |                                     [] |
-     clisp              |                                        |
-     clisp              |                []                      |
-     coreutils          |                         []             |
-     cpio               |                []       []     []      |
-     darkstat           |          []    []              []   [] |
-     diffutils          |          []             []     []      |
-     e2fsprogs          |                                        |
-     enscript           |                []              []      |
-     error              |                []              []      |
-     fetchmail          |                         ()     ()      |
-     fileutils          |                         []             |
-     findutils          |                []       []     []   [] |
-     flex               |                                []      |
-     gas                |                                        |
-     gawk               |                                []      |
-     gcal               |                                        |
-     gcc                |                                        |
-     gettext            |                         []             |
-     gettext-runtime    |                         []             |
-     gettext-tools      |                                        |
-     gimp-print         |                []                      |
-     gliv               |                                []      |
-     glunarclock        |          []                            |
-     gnucash            |                                        |
-     gnucash-glossary   |                []          []          |
-     gnupg              |                                        |
-     gpe-calendar       |                            []       [] |
-     gpe-conf           |                            []       [] |
-     gpe-contacts       |                            []          |
-     gpe-edit           |                            []       [] |
-     gpe-login          |                            []       [] |
-     gpe-ownerinfo      |                            []       [] |
-     gpe-sketchbook     |                            []       [] |
-     gpe-timesheet      |                            []       [] |
-     gpe-today          |                            []       [] |
-     gpe-todo           |                            []       [] |
-     gphoto2            |                                        |
-     gprof              |                                []      |
-     gpsdrive           |                ()    ()        ()      |
-     grep               |                         [] []  []   [] |
-     gretl              |                                        |
-     hello              |       [] [] [] [] [] [] []     []   [] |
-     id-utils           |                []              []   [] |
-     indent             |                []              []   [] |
-     jpilot             |                ()    ()                |
-     jwhois             |                []              []   [] |
-     kbd                |                                        |
-     ld                 |                                        |
-     libc               |             []       [] []     []      |
-     libgpewidget       |                            []       [] |
-     libiconv           |                                []   [] |
-     lifelines          |                                        |
-     lilypond           |                []                      |
-     lingoteach         |                                        |
-     lingoteach_lessons |                                        |
-     lynx               |                []              []      |
-     m4                 |                []       []     []   [] |
-     mailutils          |                                        |
-     make               |                []              []      |
-     man-db             |                                []      |
-     mysecretdiary      |                                []      |
-     nano               |          []    []       []          [] |
-     nano_1_0           |          [] []    []    []             |
-     opcodes            |                []              []   [] |
-     parted             |                   []       []  []      |
-     ptx                |             [] []    [] [] []  []   [] |
-     python             |                                        |
-     radius             |                                        |
-     recode             |                         []     []   [] |
-     screem             |                                        |
-     sed                |                                []   [] |
-     sh-utils           |             []                         |
-     sharutils          |                []                      |
-     sketch             |                                []      |
-     soundtracker       |                                        |
-     sp                 |                                        |
-     tar                |          [] []       [] []     []   [] |
-     texinfo            |                                     [] |
-     textutils          |             []                         |
-     tin                |                                        |
-     util-linux         |                []              []      |
-     vorbis-tools       |                []                   [] |
-     wastesedge         |                                        |
-     wdiff              |          []             []     []   [] |
-     wget               |                []       []          [] |
-     xchat              |       []       []                      |
-     xpad               |                                     [] |
-                        +----------------------------------------+
-                          lg lt lv ms nb nl nn no pl pt pt_BR ro
-                           0  0  2 11  7 26  3  4 18 15  34   34
-     
-                          ru sk sl sr sv ta tr uk vi wa zh_CN zh_TW
-                        +-------------------------------------------+
-     a2ps               | []    []    []    [] []                   | 16
-     aegis              | ()                                        |  0
-     anubis             |                   [] []                   |  5
-     ap-utils           |                      ()                   |  1
-     bash               | []                                        |  7
-     batchelor          |                                           |  1
-     bfd                |             []    []           []         |  7
-     binutils           |             []    []           []         |  7
-     bison              | []          []                            | 13
-     bluez-pin          |                                           |  7
-     clisp              |                                           |  0
-     clisp              |                                           |  5
-     coreutils          | []    []    []    []                 []   | 14
-     cpio               | []          []                 []         | 13
-     darkstat           |             []                 ()    ()   |  9
-     diffutils          | []          []    []                 []   | 21
-     e2fsprogs          |                   []                      |  3
-     enscript           | []          []    []                      | 11
-     error              |    []             []                 []   | 14
-     fetchmail          |                   []                      |  7
-     fileutils          | []    []    []    []           []    []   | 15
-     findutils          | [] [] []    []    []           []         | 27
-     flex               | []          []    []                      | 10
-     gas                |                   []                      |  3
-     gawk               |             []    []                      |  9
-     gcal               |             []    []                      |  4
-     gcc                |                   []                      |  4
-     gettext            | [] [] []    []    []                 []   | 15
-     gettext-runtime    | [] [] []    []    []                 []   | 16
-     gettext-tools      |    [] []                                  |  5
-     gimp-print         |    []       []                            | 10
-     gliv               |                                           |  1
-     glunarclock        | []          []             []             | 11
-     gnucash            |    []                                []   |  4
-     gnucash-glossary   |    []       []                       []   |  8
-     gnupg              |    []       []    []                 []   | 16
-     gpe-calendar       |                                      []   |  5
-     gpe-conf           |                                           |  3
-     gpe-contacts       |                                      []   |  4
-     gpe-edit           |                                      []   |  5
-     gpe-login          |                                      []   |  5
-     gpe-ownerinfo      |                                      []   |  7
-     gpe-sketchbook     |                                      []   |  5
-     gpe-timesheet      |                                      []   |  6
-     gpe-today          |                                      []   |  6
-     gpe-todo           |                                      []   |  6
-     gphoto2            |             []                 []         |  9
-     gprof              |             []    []                      |  7
-     gpsdrive           |    []       []                            |  3
-     grep               | []    []          [] []                   | 24
-     gretl              |                                           |  2
-     hello              | [] []       []    [] []                   | 33
-     id-utils           | []          []    []                      | 11
-     indent             | [] []       []    []                      | 19
-     jpilot             |             []    []    []     []    []   | 10
-     jwhois             | ()          ()    []                 []   | 10
-     kbd                |             []    []                      |  8
-     ld                 |             []    []                      |  5
-     libc               |    []       []    []           []         | 20
-     libgpewidget       |                                           |  6
-     libiconv           | [] [] []    []    [] []                   | 21
-     lifelines          |             []                            |  2
-     lilypond           |             []                            |  4
-     lingoteach         |                                           |  2
-     lingoteach_lessons |                                ()         |  0
-     lynx               | []          []    [] []                   | 14
-     m4                 | []          []                 []         | 15
-     mailutils          |                                           |  2
-     make               | []          []    []           []         | 15
-     man-db             |             []                            |  6
-     mysecretdiary      |             []    []                      |  8
-     nano               | []          []       []                   | 15
-     nano_1_0           | []          []       []                   | 15
-     opcodes            |             []    []                      |  9
-     parted             |             []    []                      | 13
-     ptx                | []          []    []                      | 22
-     python             |                                           |  0
-     radius             |                                           |  0
-     recode             | []    []    []    []                      | 19
-     screem             |             []                            |  1
-     sed                |    [] []    []    [] []                   | 20
-     sh-utils           | []    []          []                      | 13
-     sharutils          | []          []    []                 []   | 16
-     sketch             |             []                            |  5
-     soundtracker       |             []                            |  7
-     sp                 |                   []                      |  3
-     tar                |    [] []    []    []           []         | 24
-     texinfo            | []          []    []           []         | 13
-     textutils          | []    []    []    []                 []   | 15
-     tin                |                                           |  1
-     util-linux         |             []    []                      | 14
-     vorbis-tools       | []                                        |  7
-     wastesedge         |                                           |  0
-     wdiff              | [] []       []    []                      | 17
-     wget               | [] [] []    []    [] []              []   | 25
-     xchat              |    [] []    []                            | 11
-     xpad               |                                           |  1
-                        +-------------------------------------------+
-       50 teams           ru sk sl sr sv ta tr uk vi wa zh_CN zh_TW
-       97 domains         32 19 16  0 56  0 48 10  1  1  12    23    913
+     Ready PO files       af am ar az be bg bs ca cs cy da de el en en_GB eo
+                        +----------------------------------------------------+
+     GNUnet             |                                  []                |
+     a2ps               |             []                [] [] []     []      |
+     aegis              |                                  ()                |
+     ant-phone          |                                  ()                |
+     anubis             |                                  []                |
+     ap-utils           |                                                    |
+     aspell             |                      [] []    [] []        []      |
+     bash               |                      []          []             [] |
+     batchelor          |                                  []                |
+     bfd                |                                                    |
+     bibshelf           |                                  []                |
+     binutils           |                               []                   |
+     bison              |                               [] []                |
+     bison-runtime      |                                                    |
+     bluez-pin          | []                      []       [] []          [] |
+     cflow              |                               []                   |
+     clisp              |                                  []    []          |
+     console-tools      |                         []       []                |
+     coreutils          |                []    []          []                |
+     cpio               |                                                    |
+     cpplib             |                      []       [] []                |
+     cryptonit          |                                  []                |
+     darkstat           |                []             () []                |
+     dialog             |                      [] [] [] [] [] []             |
+     diffutils          |                      [] []    [] [] []          [] |
+     doodle             |                                  []                |
+     e2fsprogs          |                         []       []                |
+     enscript           |                      []       [] []        []      |
+     error              |                      []       [] []        []      |
+     fetchmail          |                      []       [] () []             |
+     fileutils          |                               [] []                |
+     findutils          |                []    []       []                   |
+     flex               |                      []       [] []                |
+     fslint             |                                  []                |
+     gas                |                                                    |
+     gawk               |                      []       [] []                |
+     gbiff              |                                  []                |
+     gcal               |                      []                            |
+     gcc                |                                  []                |
+     gettext-examples   | []                   []          [] []          [] |
+     gettext-runtime    |             []       []       [] []             [] |
+     gettext-tools      |                      []          []                |
+     gimp-print         |                         []    [] []        []      |
+     gip                |                []                                  |
+     gliv               |                                  []                |
+     glunarclock        |                []                                  |
+     gmult              | []                               []                |
+     gnubiff            |                                  ()                |
+     gnucash            |                                  () ()     []      |
+     gnucash-glossary   |                               [] ()                |
+     gnuedu             |                                                    |
+     gnulib             | []          [] []    []       [] []                |
+     gnunet-gtk         |                                                    |
+     gnutls             |                                                    |
+     gpe-aerial         |                         []       []                |
+     gpe-beam           |                         []       []                |
+     gpe-calendar       |                                                    |
+     gpe-clock          |                         []       []                |
+     gpe-conf           |                         []       []                |
+     gpe-contacts       |                                                    |
+     gpe-edit           |                         []                         |
+     gpe-filemanager    |                                                    |
+     gpe-go             |                         []                         |
+     gpe-login          |                         []       []                |
+     gpe-ownerinfo      |                         []       []                |
+     gpe-package        |                                                    |
+     gpe-sketchbook     |                         []       []                |
+     gpe-su             |                         []       []                |
+     gpe-taskmanager    |                         []       []                |
+     gpe-timesheet      |                         []                         |
+     gpe-today          |                         []       []                |
+     gpe-todo           |                                                    |
+     gphoto2            |                         []    [] []        []      |
+     gprof              |                               [] []                |
+     gpsdrive           |                                  ()    ()          |
+     gramadoir          | []                               []                |
+     grep               | []          [] []    []          [] []             |
+     gretl              |                                                    |
+     gsasl              |                                                    |
+     gss                |                                                    |
+     gst-plugins        | []                   [] []    []                   |
+     gst-plugins-base   |                []    []       []                   |
+     gst-plugins-good   | []       []    []    [] []    []           []      |
+     gstreamer          | []             []    [] []    [] []        []      |
+     gtick              |                                  ()                |
+     gtkam              |                         []    [] []                |
+     gtkorphan          |                []                []                |
+     gtkspell           |             []                   [] []          [] |
+     gutenprint         |                               []                   |
+     hello              |                []    []       [] []             [] |
+     id-utils           |                               [] []                |
+     impost             |                                                    |
+     indent             |                      []          []             [] |
+     iso_3166           |                                  []             [] |
+     iso_3166_2         |                                                    |
+     iso_4217           |                                  []                |
+     iso_639            |                                  []             [] |
+     jpilot             |                         []                         |
+     jtag               |                                                    |
+     jwhois             |                                                    |
+     kbd                |                         []    [] [] []             |
+     keytouch           |                                                    |
+     keytouch-editor    |                                                    |
+     keytouch-keyboa... |                                                    |
+     latrine            |                                  ()                |
+     ld                 |                               []                   |
+     leafpad            |                []    [] []       [] []             |
+     libc               |                      [] []    [] [] []             |
+     libexif            |                                  []                |
+     libextractor       |                                  []                |
+     libgpewidget       |                         []    [] []                |
+     libgpg-error       |                                  []                |
+     libgphoto2         |                               [] []                |
+     libgphoto2_port    |                               [] []                |
+     libgsasl           |                                                    |
+     libiconv           |                                  []             [] |
+     libidn             |                               []                [] |
+     lifelines          |                               [] ()                |
+     lilypond           |                                  []                |
+     lingoteach         |                                                    |
+     lynx               |                      [] []    [] []                |
+     m4                 |                         []    [] [] []             |
+     mailutils          |                      []                            |
+     make               |                               [] []                |
+     man-db             |                      [] ()    [] []                |
+     minicom            |                         []    [] []                |
+     mysecretdiary      |                               [] []                |
+     nano               |                []    []          []                |
+     nano_1_0           |                      [] ()    [] []                |
+     opcodes            |                                  []                |
+     parted             |                                                    |
+     pilot-qof          |                                            []      |
+     psmisc             |                []                                  |
+     pwdutils           |                                                    |
+     python             |                                                    |
+     qof                |                                                    |
+     radius             |                      []                            |
+     recode             |             []       []       [] [] []          [] |
+     rpm                |                         []    []                   |
+     screem             |                                                    |
+     scrollkeeper       |          [] []       [] [] [] [] []        []      |
+     sed                |                      []          []             [] |
+     sh-utils           |                               [] []                |
+     shared-mime-info   |                []       []                 []   [] |
+     sharutils          |                []    [] []    [] [] []             |
+     shishi             |                                                    |
+     silky              |                                                    |
+     skencil            |                               [] ()                |
+     sketch             |                               [] ()                |
+     solfege            |                                                    |
+     soundtracker       |                               [] []                |
+     sp                 |                                  []                |
+     stardict           |                         []                         |
+     system-tools-ba... |       []       [] [] [] []    [] [] []     []      |
+     tar                |                []                                  |
+     texinfo            |                               [] []             [] |
+     textutils          |                      []       [] []                |
+     tin                |                                  ()        ()      |
+     tp-robot           |                                  []                |
+     tuxpaint           | []             []             [] []        []      |
+     unicode-han-tra... |                                                    |
+     unicode-transla... |                                                    |
+     util-linux         |                      [] []    [] []                |
+     vorbis-tools       |             []          []    []           []      |
+     wastesedge         |                                  ()                |
+     wdiff              |                      []       [] []        []      |
+     wget               |                      []          []                |
+     xchat              |             [] []    []          [] []     []      |
+     xkeyboard-config   |                                                    |
+     xpad               |                []             []                   |
+                        +----------------------------------------------------+
+                          af am ar az be bg bs ca cs cy da de el en en_GB eo
+                          10  0  1  2  9 22  1 42 41  2 60 95 16  1  17   16
+
+                          es et eu fa fi fr  ga gl gu he hi hr hu id is it
+                        +--------------------------------------------------+
+     GNUnet             |                                                  |
+     a2ps               |    []       [] []                             () |
+     aegis              |                                                  |
+     ant-phone          |                []                                |
+     anubis             |                []                                |
+     ap-utils           |             [] []                                |
+     aspell             |                []  []                         [] |
+     bash               | []             []                    []          |
+     batchelor          |                []  []                            |
+     bfd                | []                                               |
+     bibshelf           | []                 []                         [] |
+     binutils           | []          [] []                                |
+     bison              | [] []          []  []                   []    [] |
+     bison-runtime      |    []          []  []                   []    [] |
+     bluez-pin          |             [] []  []                [] []       |
+     cflow              |                    []                            |
+     clisp              | []             []                                |
+     console-tools      |                                                  |
+     coreutils          | [] []       [] []  []                []          |
+     cpio               | []             []  []                            |
+     cpplib             | []             []                                |
+     cryptonit          |                []                                |
+     darkstat           | []             ()  []                [] []       |
+     dialog             | [] [] []    [] []  []                []       [] |
+     diffutils          | []          [] []  [] []    []       [] []    [] |
+     doodle             |                    []                         [] |
+     e2fsprogs          | []             []                             [] |
+     enscript           |                []  []             []             |
+     error              | []          [] []  []                []          |
+     fetchmail          | []                                               |
+     fileutils          | [] []          []  []                []       [] |
+     findutils          |    []          []  []                []          |
+     flex               | []             []  []                            |
+     fslint             |                []                                |
+     gas                | []             []                                |
+     gawk               | []             []  []       []                   |
+     gbiff              |                []                                |
+     gcal               | []             []                                |
+     gcc                | []                                               |
+     gettext-examples   | []             []  []                [] []    [] |
+     gettext-runtime    | []          [] []  []                   []    [] |
+     gettext-tools      | []             []                             [] |
+     gimp-print         | []             []                                |
+     gip                | []    []       []                                |
+     gliv               |                ()                                |
+     glunarclock        |             []     []                []          |
+     gmult              |       []       []                             [] |
+     gnubiff            |                ()                             () |
+     gnucash            | ()             ()                    ()          |
+     gnucash-glossary   | []                                            [] |
+     gnuedu             | []                                               |
+     gnulib             | [] [] []    [] []  [] []             []          |
+     gnunet-gtk         |                                                  |
+     gnutls             |                                                  |
+     gpe-aerial         | []             []                                |
+     gpe-beam           | []             []                                |
+     gpe-calendar       |                                                  |
+     gpe-clock          | []          [] []                    []          |
+     gpe-conf           |                []                                |
+     gpe-contacts       | []             []                                |
+     gpe-edit           | []             []                    [] []       |
+     gpe-filemanager    | []                                               |
+     gpe-go             | []             []                    []          |
+     gpe-login          | []             []                    []          |
+     gpe-ownerinfo      | []          [] []                    [] []       |
+     gpe-package        | []                                               |
+     gpe-sketchbook     | []             []                                |
+     gpe-su             | []          [] []                    []          |
+     gpe-taskmanager    | []          [] []                                |
+     gpe-timesheet      | []             []  []                   []       |
+     gpe-today          | []          [] []  []                            |
+     gpe-todo           | []                                               |
+     gphoto2            | []          [] []                    []       [] |
+     gprof              | []             []  []                   []       |
+     gpsdrive           | ()             ()                    []       () |
+     gramadoir          |                []  []                            |
+     grep               | [] [] []    [] []  [] []    []    [] [] []    [] |
+     gretl              | []             []                             [] |
+     gsasl              |                    []                   []       |
+     gss                |                []                                |
+     gst-plugins        |                []                    []       [] |
+     gst-plugins-base   |                                      []       [] |
+     gst-plugins-good   |       []                             []       [] |
+     gstreamer          |             []                       []       [] |
+     gtick              |                    []                            |
+     gtkam              | []             []                    []       [] |
+     gtkorphan          |                []                             [] |
+     gtkspell           | []    []    [] []  []                         [] |
+     gutenprint         |                                      []          |
+     hello              | [] [] [] [] [] []  [] []    []    [] [] []    [] |
+     id-utils           |                []  []                [] []    [] |
+     impost             |                []  []                            |
+     indent             | [] [] []    [] []  [] []             [] []    [] |
+     iso_3166           |             [] []                    []          |
+     iso_3166_2         |                []                                |
+     iso_4217           |    []       []        []             []          |
+     iso_639            |          [] [] []  []                []          |
+     jpilot             | []             []                                |
+     jtag               |                []                                |
+     jwhois             | []             []                    [] []    [] |
+     kbd                | []             []                                |
+     keytouch           |                    []                            |
+     keytouch-editor    |                    []                            |
+     keytouch-keyboa... |                    []                            |
+     latrine            |                []  []                         [] |
+     ld                 | []             []                                |
+     leafpad            | []             []  []       []       []       [] |
+     libc               | []          [] []     []             []          |
+     libexif            | []                                               |
+     libextractor       |                    []                            |
+     libgpewidget       | []             []  []                [] []       |
+     libgpg-error       |                                                  |
+     libgphoto2         | []             []                             [] |
+     libgphoto2_port    |                []                             [] |
+     libgsasl           |                []  []                            |
+     libiconv           |    []              []                            |
+     libidn             |                []                             [] |
+     lifelines          |                ()                                |
+     lilypond           |                []                                |
+     lingoteach         |                []                       []    [] |
+     lynx               |    []                                []       [] |
+     m4                 |                []  [] []                []       |
+     mailutils          | []             []                                |
+     make               | []          [] []  [] []    []    []    []       |
+     man-db             | ()                                               |
+     minicom            | []          [] []                    []          |
+     mysecretdiary      | []             []                       []       |
+     nano               | []    []       []  []                []       [] |
+     nano_1_0           | []             []     []                []    [] |
+     opcodes            | []          [] []  []                            |
+     parted             | []             []                       []    [] |
+     pilot-qof          |                                                  |
+     psmisc             |       []                             []       [] |
+     pwdutils           |                                                  |
+     python             |                                                  |
+     qof                |                                         []       |
+     radius             | []             []                                |
+     recode             | []             []  [] []    []       [] []    [] |
+     rpm                |                []                       []       |
+     screem             |                                                  |
+     scrollkeeper       | []          []                       []          |
+     sed                | [] []          []  []                []          |
+     sh-utils           | [] []       [] []  []                []       [] |
+     shared-mime-info   | []    []    [] []                    []       [] |
+     sharutils          | [] []       [] []  [] []             []       [] |
+     shishi             |                                                  |
+     silky              |                []                                |
+     skencil            | []             []                                |
+     sketch             | []             []                                |
+     solfege            |                                               [] |
+     soundtracker       | []             []                             [] |
+     sp                 |                []                                |
+     stardict           |                                      []          |
+     system-tools-ba... | []    []    [] []                 [] [] []    [] |
+     tar                | [] []       [] []  []                []       [] |
+     texinfo            |                []           []                   |
+     textutils          | []             []  [] []             []          |
+     tin                |    []          ()                                |
+     tp-robot           |             [] []  []                []          |
+     tuxpaint           |                    []                []          |
+     unicode-han-tra... |                                                  |
+     unicode-transla... |                []  []                            |
+     util-linux         | [] []       [] []                    [] []    [] |
+     vorbis-tools       | []             []                                |
+     wastesedge         |                ()                                |
+     wdiff              | [] []          []  [] []             [] []    [] |
+     wget               |    []       [] []  []             [] [] []    [] |
+     xchat              | []    []    [] []        []    []    []       [] |
+     xkeyboard-config   |             [] []                    []       [] |
+     xpad               | []                 []                []          |
+                        +--------------------------------------------------+
+                          es et eu fa fi fr  ga gl gu he hi hr hu id is it
+                          88 22 14  2 40 115 61 14  1  8  1  6 59 31  0 52
+
+                          ja ko ku ky lg lt lv mk mn ms mt nb ne nl nn no
+                        +-------------------------------------------------+
+     GNUnet             |                                                 |
+     a2ps               |    ()                      []          []    () |
+     aegis              |                                        ()       |
+     ant-phone          |                                        []       |
+     anubis             |                            []    []    []       |
+     ap-utils           |                            []                   |
+     aspell             |                         []             []       |
+     bash               |                                        []       |
+     batchelor          |                            []          []       |
+     bfd                |                                                 |
+     bibshelf           |                            []                   |
+     binutils           |                                                 |
+     bison              |                            []    []    []       |
+     bison-runtime      |                            []    []    []       |
+     bluez-pin          |       []                   []          []       |
+     cflow              |                                                 |
+     clisp              |                                        []       |
+     console-tools      |                                                 |
+     coreutils          |                                        []       |
+     cpio               |                                                 |
+     cpplib             |                                        []       |
+     cryptonit          |                                        []       |
+     darkstat           |                            []          []       |
+     dialog             |                            []          []       |
+     diffutils          | []                         []          []       |
+     doodle             |                                                 |
+     e2fsprogs          |                                        []       |
+     enscript           |                                        []       |
+     error              |                                        []       |
+     fetchmail          | []                                     []       |
+     fileutils          | []          []                                  |
+     findutils          |                                        []       |
+     flex               |    []                                  []       |
+     fslint             |                            []          []       |
+     gas                |                                                 |
+     gawk               | []                                     []       |
+     gbiff              |                                        []       |
+     gcal               |                                                 |
+     gcc                |                                                 |
+     gettext-examples   | []                                     []       |
+     gettext-runtime    | [] []                                  []       |
+     gettext-tools      | [] []                                           |
+     gimp-print         | []                                     []       |
+     gip                |                            []          []       |
+     gliv               |                                        []       |
+     glunarclock        |                            []          []       |
+     gmult              | []                         []                   |
+     gnubiff            |                                                 |
+     gnucash            | ()                               ()             |
+     gnucash-glossary   |                                        []       |
+     gnuedu             |                                                 |
+     gnulib             | [] []                      []          []       |
+     gnunet-gtk         |                                                 |
+     gnutls             |                                                 |
+     gpe-aerial         |                                        []       |
+     gpe-beam           |                                        []       |
+     gpe-calendar       | []                                              |
+     gpe-clock          | [] []                                  []       |
+     gpe-conf           |    []                                  []       |
+     gpe-contacts       |    []                                           |
+     gpe-edit           | [] []                                  []       |
+     gpe-filemanager    | [] []                                           |
+     gpe-go             | [] []                                  []       |
+     gpe-login          | [] []                                  []       |
+     gpe-ownerinfo      | []                                     []       |
+     gpe-package        | [] []                                           |
+     gpe-sketchbook     |    []                                  []       |
+     gpe-su             | [] []                                  []       |
+     gpe-taskmanager    | [] [] []                               []       |
+     gpe-timesheet      |                                        []       |
+     gpe-today          | []                                     []       |
+     gpe-todo           | []                                              |
+     gphoto2            | []                                     []       |
+     gprof              |                                                 |
+     gpsdrive           | ()                                     ()    () |
+     gramadoir          |                                        ()       |
+     grep               | []       []                      []    []       |
+     gretl              |                                                 |
+     gsasl              |                                        []       |
+     gss                |                                                 |
+     gst-plugins        |                                        []       |
+     gst-plugins-base   |                                                 |
+     gst-plugins-good   |                                        []       |
+     gstreamer          |                                        []       |
+     gtick              |                                                 |
+     gtkam              | []                                              |
+     gtkorphan          |                                        []       |
+     gtkspell           |                         []             []       |
+     gutenprint         |                                                 |
+     hello              | [] []                      []    []    [] []    |
+     id-utils           |                                        []       |
+     impost             |                                                 |
+     indent             | []                                     []       |
+     iso_3166           |                                        []       |
+     iso_3166_2         |                                        []       |
+     iso_4217           | []                      []             []       |
+     iso_639            | []                                     []       |
+     jpilot             | ()                                     ()    () |
+     jtag               |                                                 |
+     jwhois             |                                        []       |
+     kbd                |                                        []       |
+     keytouch           |                                        []       |
+     keytouch-editor    |                                                 |
+     keytouch-keyboa... |                                                 |
+     latrine            |                                        []       |
+     ld                 |                                                 |
+     leafpad            | []             []                               |
+     libc               | [] []                            []    []    [] |
+     libexif            |                                                 |
+     libextractor       |                                                 |
+     libgpewidget       |                                        []       |
+     libgpg-error       |                                                 |
+     libgphoto2         | []                                              |
+     libgphoto2_port    | []                                              |
+     libgsasl           |                                        []       |
+     libiconv           |                                                 |
+     libidn             | []                                     []       |
+     lifelines          |                                        []       |
+     lilypond           |                                                 |
+     lingoteach         |                                        []       |
+     lynx               | []                                     []       |
+     m4                 | []                                     []       |
+     mailutils          |                                                 |
+     make               | [] []                                  []       |
+     man-db             | ()                                              |
+     minicom            | []                                              |
+     mysecretdiary      |                                        []       |
+     nano               |                            []    []    []       |
+     nano_1_0           |                            []    []       []    |
+     opcodes            |                                        []       |
+     parted             | []                                     []       |
+     pilot-qof          |                                                 |
+     psmisc             | []                               []    []       |
+     pwdutils           |                                                 |
+     python             |                                                 |
+     qof                |                                                 |
+     radius             |                                                 |
+     recode             |                                        []       |
+     rpm                | [] []                                           |
+     screem             | []                                              |
+     scrollkeeper       |                                  [] [] [] []    |
+     sed                | []                                     []       |
+     sh-utils           | []                               []             |
+     shared-mime-info   |    []          []                []    [] []    |
+     sharutils          | []                                     []       |
+     shishi             |                                                 |
+     silky              |                                        []       |
+     skencil            |                                                 |
+     sketch             |                                                 |
+     solfege            |                                                 |
+     soundtracker       |                                                 |
+     sp                 | ()                                              |
+     stardict           |                      []                []       |
+     system-tools-ba... | [] []          []                      []       |
+     tar                | []       []                            []       |
+     texinfo            | []                               []    []       |
+     textutils          | [] []                            []             |
+     tin                |                                                 |
+     tp-robot           |                                        []       |
+     tuxpaint           |                                           []    |
+     unicode-han-tra... |                                                 |
+     unicode-transla... |                                                 |
+     util-linux         | []                                     []       |
+     vorbis-tools       |                                        []       |
+     wastesedge         |                                        []       |
+     wdiff              |                            []    []             |
+     wget               | []                                     []       |
+     xchat              | [] []                []                []       |
+     xkeyboard-config   |                                        []       |
+     xpad               |    []                      []          []       |
+                        +-------------------------------------------------+
+                          ja ko ku ky lg lt lv mk mn ms mt nb ne nl nn no
+                          52 24  2  2  1  3  0  2  3 21  0 15  1 97  5  1
+
+                          nso or pa pl pt pt_BR rm ro ru rw sk sl sq sr sv  ta
+                        +------------------------------------------------------+
+     GNUnet             |                                                      |
+     a2ps               |           ()     []      [] []       []    [] []     |
+     aegis              |                          () ()                       |
+     ant-phone          |                          []                   []     |
+     anubis             |           []             [] []                       |
+     ap-utils           |           ()                                         |
+     aspell             |                          [] []                       |
+     bash               |                  []      [] []                       |
+     batchelor          |                          []                   []     |
+     bfd                |                                                      |
+     bibshelf           |                                               []     |
+     binutils           |                             []                []     |
+     bison              |           []     []      [] []                []     |
+     bison-runtime      |           []             []          []       []     |
+     bluez-pin          |           []     []   [] [] []    [] []    [] []     |
+     cflow              |           []                                         |
+     clisp              |                             []                       |
+     console-tools      |                             []                       |
+     coreutils          |           []                []       []       []     |
+     cpio               |           []                []                []     |
+     cpplib             |                                               []     |
+     cryptonit          |                  []                           []     |
+     darkstat           |           []     []      []       []       [] []     |
+     dialog             |           [] []  []   [] [] [] []          [] []     |
+     diffutils          |           []     []      [] []             [] []     |
+     doodle             |                                         []    []     |
+     e2fsprogs          |           []                                  []     |
+     enscript           |                  []      [] []       []       []     |
+     error              |                  []      []       []          []     |
+     fetchmail          |           []                []          []           |
+     fileutils          |           []             [] []       []       []     |
+     findutils          |           [] []          []       [] []       []     |
+     flex               |           []     []      [] []                []     |
+     fslint             |                  []      []                [] []     |
+     gas                |                                                      |
+     gawk               |           []     []      []                   []     |
+     gbiff              |                          []                          |
+     gcal               |                                               []     |
+     gcc                |                                               []     |
+     gettext-examples   |           [] []          [] []    [] []    [] []     |
+     gettext-runtime    |           [] []          [] []    [] []    [] []     |
+     gettext-tools      |           []             [] []    [] []    [] []     |
+     gimp-print         |                                   []          []     |
+     gip                |                       []          []       [] []     |
+     gliv               |                  []      []       []          []     |
+     glunarclock        |                  []      [] []    []       [] []     |
+     gmult              |                       [] []                [] []     |
+     gnubiff            |                          ()                          |
+     gnucash            |           ()                                  []     |
+     gnucash-glossary   |              []                   []          []     |
+     gnuedu             |                                                      |
+     gnulib             |           []             [] []       []       []     |
+     gnunet-gtk         |                                               []     |
+     gnutls             |           []                                  []     |
+     gpe-aerial         |              []  []      [] []       []    [] []     |
+     gpe-beam           |              []  []      [] []       []    [] []     |
+     gpe-calendar       |                             []                       |
+     gpe-clock          |              []  []      [] []    [] []    [] []     |
+     gpe-conf           |              []  []      [] []    [] []       []     |
+     gpe-contacts       |                          [] []       []    [] []     |
+     gpe-edit           |              []  []      [] []    [] []    [] []     |
+     gpe-filemanager    |                                      []       []     |
+     gpe-go             |                  []      [] []       []    [] []     |
+     gpe-login          |              []  []      [] []    [] []    [] []     |
+     gpe-ownerinfo      |              []  []      [] []    [] []    [] []     |
+     gpe-package        |                                      []       []     |
+     gpe-sketchbook     |              []  []      [] []    [] []    [] []     |
+     gpe-su             |              []  []      [] []    [] []    [] []     |
+     gpe-taskmanager    |              []  []      [] []    [] []    [] []     |
+     gpe-timesheet      |              []  []      [] []    [] []    [] []     |
+     gpe-today          |              []  []      [] []    [] []    [] []     |
+     gpe-todo           |                             []       []    [] []     |
+     gphoto2            |           []             []       []       [] []     |
+     gprof              |                  []      []                   []     |
+     gpsdrive           |        []                []                   []     |
+     gramadoir          |                                   []          []     |
+     grep               |           [] []  []      [] []       []    [] []     |
+     gretl              |           []                                         |
+     gsasl              |           []                               [] []     |
+     gss                |           []             []                   []     |
+     gst-plugins        |     []                                  [] [] []     |
+     gst-plugins-base   |                                               []     |
+     gst-plugins-good   |     []                                  [] [] []     |
+     gstreamer          |                                         [] [] []     |
+     gtick              |                             []                       |
+     gtkam              |           []     []         []                []     |
+     gtkorphan          |                                               []     |
+     gtkspell           |                  []   [] [] []    [] []    [] []     |
+     gutenprint         |                                               []     |
+     hello              |           []     []      [] []    [] []    [] []     |
+     id-utils           |                  []      [] []                []     |
+     impost             |                                               []     |
+     indent             |                  []      [] []    []       [] []     |
+     iso_3166           |              []                []    [] [] [] []     |
+     iso_3166_2         |                                                      |
+     iso_4217           |                                []    []    [] []     |
+     iso_639            |                                []    []    [] []     |
+     jpilot             |                                                      |
+     jtag               |                                   []                 |
+     jwhois             |           []     []      []                   []     |
+     kbd                |           []             []                   []     |
+     keytouch           |                                               []     |
+     keytouch-editor    |                                               []     |
+     keytouch-keyboa... |                                               []     |
+     latrine            |                          []                   []     |
+     ld                 |                                               []     |
+     leafpad            |           [] []             []    []          []  [] |
+     libc               |           []     []         []    []          []     |
+     libexif            |           []                                         |
+     libextractor       |                          []                   []     |
+     libgpewidget       |              []  []      []       [] []    [] []     |
+     libgpg-error       |           []             []                          |
+     libgphoto2         |           []                                         |
+     libgphoto2_port    |           []                []                []     |
+     libgsasl           |           []             []                [] []     |
+     libiconv           |                                      []    []        |
+     libidn             |           []                               [] ()     |
+     lifelines          |           []                                  []     |
+     lilypond           |                                                      |
+     lingoteach         |                  []                                  |
+     lynx               |                  []         []                []     |
+     m4                 |           []     []      [] []                []     |
+     mailutils          |           []             [] []                []     |
+     make               |           []     []         []                []     |
+     man-db             |                          []                   []     |
+     minicom            |           []     []      [] []                []     |
+     mysecretdiary      |                  []      [] []                []     |
+     nano               |                  []      []                   []     |
+     nano_1_0           |           []             [] []                []     |
+     opcodes            |                          []                   []     |
+     parted             |           []                                         |
+     pilot-qof          |                                               []     |
+     psmisc             |           []                                  []     |
+     pwdutils           |           []                                  []     |
+     python             |                                                      |
+     qof                |                  []                           []     |
+     radius             |           []                []                       |
+     recode             |           [] []  []      [] []       []       []     |
+     rpm                |           [] []             []                []     |
+     screem             |                                                      |
+     scrollkeeper       |           []             [] []    []    [] [] []     |
+     sed                |           [] []  []      [] []    [] []    [] []     |
+     sh-utils           |                             []       []    []        |
+     shared-mime-info   |              []  []                     [] [] []     |
+     sharutils          |           []                []             [] []     |
+     shishi             |           []                                         |
+     silky              |                                   []                 |
+     skencil            |              []  []                           []     |
+     sketch             |              []  []                           []     |
+     solfege            |                                               []     |
+     soundtracker       |                                   []          []     |
+     sp                 |                                                      |
+     stardict           |                             []    []          []     |
+     system-tools-ba... |        [] [] []  []      []             [] [] []  [] |
+     tar                |           []             [] []       []       []     |
+     texinfo            |           []             [] []                []     |
+     textutils          |                             []       []       []     |
+     tin                |                             ()                       |
+     tp-robot           |                             []                       |
+     tuxpaint           |              []                      [] [] [] []     |
+     unicode-han-tra... |                                                      |
+     unicode-transla... |                                                      |
+     util-linux         |                  []         []       []       []     |
+     vorbis-tools       |                          [] []                       |
+     wastesedge         |                                                      |
+     wdiff              |           []     []      [] []    []          []     |
+     wget               |              []             []    []          []     |
+     xchat              |        []                   []    [] [] [] [] []     |
+     xkeyboard-config   |                                      []       []     |
+     xpad               |                                   [] []       []     |
+                        +------------------------------------------------------+
+                          nso or pa pl pt pt_BR rm ro ru rw sk sl sq sr sv  ta
+                           0   2  3 58 30  54    5 73 72  4 40 46 11 50 128  2
+
+                          tg th tk tr uk ven vi  wa xh zh_CN zh_HK zh_TW zu
+                        +---------------------------------------------------+
+     GNUnet             |                    []                             |  2
+     a2ps               |          [] []     []                             | 19
+     aegis              |                                                   |  0
+     ant-phone          |          []        []                             |  6
+     anubis             |          [] []     []                             | 11
+     ap-utils           |             ()     []                             |  4
+     aspell             |             []     []  []                         | 15
+     bash               |                    []                             | 11
+     batchelor          |          []        []                             |  9
+     bfd                |                                                   |  1
+     bibshelf           |                    []                             |  7
+     binutils           |          []        []                     []      |  9
+     bison              |          []        []                     []      | 19
+     bison-runtime      |                    []         []          []      | 15
+     bluez-pin          |          [] []     []  []     []          []      | 28
+     cflow              |             []     []                             |  5
+     clisp              |                                                   |  6
+     console-tools      |          []        []                             |  5
+     coreutils          |          []        []                             | 16
+     cpio               |          [] []     []                             |  9
+     cpplib             |          []        []         []          []      | 11
+     cryptonit          |                                                   |  5
+     darkstat           |                    []         ()          ()      | 15
+     dialog             |          [] []     []         []          []      | 30
+     diffutils          |          []        []         []          []      | 28
+     doodle             |                    []                             |  6
+     e2fsprogs          |          []        []                             | 10
+     enscript           |          [] []     []                             | 16
+     error              |          []        []         []          []      | 18
+     fetchmail          |          []        []                             | 12
+     fileutils          |          []                   []          []      | 18
+     findutils          |          []        []                     []      | 17
+     flex               |          []        []                             | 15
+     fslint             |                    []                             |  9
+     gas                |          []                                       |  3
+     gawk               |          []        []                             | 15
+     gbiff              |                    []                             |  5
+     gcal               |          []                                       |  5
+     gcc                |          []                   []          []      |  6
+     gettext-examples   |          [] []     []         []    []    []      | 27
+     gettext-runtime    |          [] []     []         []    []    []      | 28
+     gettext-tools      |          [] []     []         []          []      | 19
+     gimp-print         |             []     []                             | 12
+     gip                |                    []                     []      | 12
+     gliv               |          []        []                             |  8
+     glunarclock        |                    []  []                 []      | 15
+     gmult              |          []        []         []          []      | 15
+     gnubiff            |                    []                             |  1
+     gnucash            |          ()                                       |  2
+     gnucash-glossary   |                    []                     []      |  9
+     gnuedu             |                    []                             |  2
+     gnulib             |          [] []     []         []          []      | 28
+     gnunet-gtk         |                                                   |  1
+     gnutls             |                                                   |  2
+     gpe-aerial         |                    []         []                  | 14
+     gpe-beam           |                    []         []                  | 14
+     gpe-calendar       |                    []                             |  3
+     gpe-clock          |          []        []  []     []                  | 21
+     gpe-conf           |                    []         []                  | 14
+     gpe-contacts       |                    []         []                  | 10
+     gpe-edit           |          []        []  []                 []      | 20
+     gpe-filemanager    |                    []                             |  6
+     gpe-go             |          []        []                             | 15
+     gpe-login          |          []        []  []     []          []      | 21
+     gpe-ownerinfo      |          []        []         []          []      | 21
+     gpe-package        |                    []                             |  6
+     gpe-sketchbook     |          []        []                             | 16
+     gpe-su             |          []        []         []                  | 20
+     gpe-taskmanager    |          []        []         []                  | 20
+     gpe-timesheet      |          []        []         []          []      | 18
+     gpe-today          |          []        []  []     []          []      | 21
+     gpe-todo           |                    []                             |  7
+     gphoto2            |             []     []         []          []      | 20
+     gprof              |          []        []                             | 11
+     gpsdrive           |                                                   |  4
+     gramadoir          |                    []                             |  7
+     grep               |          [] []     []                     []      | 34
+     gretl              |                                                   |  4
+     gsasl              |                    []         []                  |  8
+     gss                |                    []                             |  5
+     gst-plugins        |             []     []                     []      | 15
+     gst-plugins-base   |             []     []         []                  |  9
+     gst-plugins-good   |             []     []         []    []    []      | 20
+     gstreamer          |          [] []     []                             | 17
+     gtick              |                    []                             |  3
+     gtkam              |                    []                             | 13
+     gtkorphan          |                    []                             |  7
+     gtkspell           |             []     []  []     []    []    []      | 26
+     gutenprint         |                                                   |  3
+     hello              |          [] []     []         []          []      | 37
+     id-utils           |          []        []                             | 14
+     impost             |                    []                             |  4
+     indent             |          []        []         []          []      | 25
+     iso_3166           |       [] []        []               []            | 16
+     iso_3166_2         |                                                   |  2
+     iso_4217           |          []        []                             | 14
+     iso_639            |                    []                             | 14
+     jpilot             |          [] []     []         []                  |  7
+     jtag               |                    []                             |  3
+     jwhois             |          []        []                     []      | 13
+     kbd                |          []        []                             | 12
+     keytouch           |                    []                             |  4
+     keytouch-editor    |                                                   |  2
+     keytouch-keyboa... |                    []                             |  3
+     latrine            |          []        []                             |  8
+     ld                 |          []        []         []          []      |  8
+     leafpad            |          []        []         []          []      | 23
+     libc               |          []                   []          []      | 23
+     libexif            |                    []                             |  4
+     libextractor       |                    []                             |  5
+     libgpewidget       |                    []  []     []                  | 19
+     libgpg-error       |                    []                             |  4
+     libgphoto2         |             []                                    |  8
+     libgphoto2_port    |             []     []                     []      | 11
+     libgsasl           |                    []                             |  8
+     libiconv           |                    []                             |  7
+     libidn             |                    []         []                  | 10
+     lifelines          |                                                   |  4
+     lilypond           |                                                   |  2
+     lingoteach         |                    []                             |  6
+     lynx               |          [] []     []                             | 15
+     m4                 |                    []         []          []      | 18
+     mailutils          |             []                                    |  8
+     make               |          []        []         []                  | 20
+     man-db             |                    []                             |  6
+     minicom            |                    []                             | 14
+     mysecretdiary      |          []        []                             | 12
+     nano               |                    []                     []      | 17
+     nano_1_0           |          [] []     []                             | 18
+     opcodes            |          []        []                             | 10
+     parted             |          [] []                            []      | 10
+     pilot-qof          |                    []                             |  3
+     psmisc             |                    []                             | 10
+     pwdutils           |                    []                             |  3
+     python             |                                                   |  0
+     qof                |                    []                             |  4
+     radius             |             []                                    |  6
+     recode             |          []        []         []                  | 25
+     rpm                |          [] []     []                     []      | 14
+     screem             |                    []                             |  2
+     scrollkeeper       |          [] []     []                     []      | 26
+     sed                |          []        []                     []      | 22
+     sh-utils           |          []                                       | 15
+     shared-mime-info   |             []     []         []          []      | 24
+     sharutils          |          []        []                     []      | 23
+     shishi             |                                                   |  1
+     silky              |                    []                             |  4
+     skencil            |                    []                             |  7
+     sketch             |                                                   |  6
+     solfege            |                                                   |  2
+     soundtracker       |          []        []                             |  9
+     sp                 |          []                                       |  3
+     stardict           |             []     []         []          []      | 11
+     system-tools-ba... |    []    [] []     []     []  []          []      | 37
+     tar                |          [] []     []                     []      | 20
+     texinfo            |          []        []         []                  | 15
+     textutils          |          []                   []          []      | 17
+     tin                |                                                   |  1
+     tp-robot           |                    []         []          []      | 10
+     tuxpaint           |                    []  []                 []      | 16
+     unicode-han-tra... |                                                   |  0
+     unicode-transla... |                                                   |  2
+     util-linux         |          [] []     []                             | 20
+     vorbis-tools       |             []     []                             | 11
+     wastesedge         |                                                   |  1
+     wdiff              |          []        []                             | 22
+     wget               |          []        []                     []      | 19
+     xchat              |             []     []         []          []      | 29
+     xkeyboard-config   |          [] []     []                     []      | 11
+     xpad               |                    []         []          []      | 14
+                        +---------------------------------------------------+
+       77 teams           tg th tk tr uk ven vi  wa xh zh_CN zh_HK zh_TW zu
+      170 domains          0  1  1 77 39  0  136 10  1  48     5    54    0  2028
 
    Some counters in the preceding matrix are higher than the number of
 visible blocks let us expect.  This is because a few extra PO files are
@@ -562,15 +1075,15 @@
 lag between the mere existence a PO file and its wide availability in a
 distribution.
 
-   If May 2003 seems to be old, you may fetch a more recent copy of
+   If October 2006 seems to be old, you may fetch a more recent copy of
 this `ABOUT-NLS' file on most GNU archive sites.  The most up-to-date
 matrix with full percentage details can be found at
 `http://www.iro.umontreal.ca/contrib/po/HTML/matrix.html'.
 
-Using `gettext' in new packages
-===============================
+1.6 Using `gettext' in new packages
+===================================
 
-   If you are writing a freely available program and want to
+If you are writing a freely available program and want to
 internationalize it you are welcome to use GNU `gettext' in your
 package.  Of course you have to respect the GNU Library General Public
 License which covers the use of the GNU `gettext' library.  This means
Index: ChangeLog
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/ChangeLog,v
retrieving revision 1.16
diff -u -r1.16 ChangeLog
--- ChangeLog	22 Aug 2007 17:11:07 -0000	1.16
+++ ChangeLog	27 Aug 2007 19:21:40 -0000
@@ -1,3 +1,4 @@
+<<<<<<< ChangeLog
 2007-05-28  Nurdin Premji  <npremji@redhat.com>
 
 	* libdwfl/libdwfl.h: Publicize elf_from_remote_memory.
@@ -44,6 +45,18 @@
 
 	* Makefile.am: Change to not install for frysk.
 
+=======
+2007-06-05  Ulrich Drepper  <drepper@redhat.com>
+
+	* Makefile.am: Remove traces of mini builds.
+	* configure.ac: Don't use libelf-po/POTFILES.in as config file
+	anymore.
+
+2007-05-16  Roland McGrath  <roland@redhat.com>
+
+	* configure.ac (AM_INIT_AUTOMAKE): Use -Wno-portability.
+
+>>>>>>> 1.1.1.3
 2006-11-02  Roland McGrath  <roland@redhat.com>
 
 	* Makefile.am (EXTRA_DIST): Add EXCEPTION file.
Index: INSTALL
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/INSTALL,v
retrieving revision 1.5
diff -u -r1.5 INSTALL
--- INSTALL	22 Aug 2007 17:11:07 -0000	1.5
+++ INSTALL	27 Aug 2007 19:21:40 -0000
@@ -1,8 +1,8 @@
 Installation Instructions
 *************************
 
-Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free
-Software Foundation, Inc.
+Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
+2006 Free Software Foundation, Inc.
 
 This file is free documentation; the Free Software Foundation gives
 unlimited permission to copy, distribute and modify it.
@@ -10,7 +10,10 @@
 Basic Installation
 ==================
 
-These are generic installation instructions.
+Briefly, the shell commands `./configure; make; make install' should
+configure, build, and install this package.  The following
+more-detailed instructions are generic; see the `README' file for
+instructions specific to this package.
 
    The `configure' shell script attempts to guess correct values for
 various system-dependent variables used during compilation.  It uses
@@ -23,9 +26,9 @@
 
    It can also use an optional file (typically called `config.cache'
 and enabled with `--cache-file=config.cache' or simply `-C') that saves
-the results of its tests to speed up reconfiguring.  (Caching is
+the results of its tests to speed up reconfiguring.  Caching is
 disabled by default to prevent problems with accidental use of stale
-cache files.)
+cache files.
 
    If you need to do unusual things to compile the package, please try
 to figure out how `configure' could check whether to do them, and mail
@@ -35,20 +38,17 @@
 may remove or edit it.
 
    The file `configure.ac' (or `configure.in') is used to create
-`configure' by a program called `autoconf'.  You only need
-`configure.ac' if you want to change it or regenerate `configure' using
-a newer version of `autoconf'.
+`configure' by a program called `autoconf'.  You need `configure.ac' if
+you want to change it or regenerate `configure' using a newer version
+of `autoconf'.
 
 The simplest way to compile this package is:
 
   1. `cd' to the directory containing the package's source code and type
-     `./configure' to configure the package for your system.  If you're
-     using `csh' on an old version of System V, you might need to type
-     `sh ./configure' instead to prevent `csh' from trying to execute
-     `configure' itself.
+     `./configure' to configure the package for your system.
 
-     Running `configure' takes awhile.  While running, it prints some
-     messages telling which features it is checking for.
+     Running `configure' might take a while.  While running, it prints
+     some messages telling which features it is checking for.
 
   2. Type `make' to compile the package.
 
@@ -78,7 +78,7 @@
 by setting variables in the command line or in the environment.  Here
 is an example:
 
-     ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
+     ./configure CC=c99 CFLAGS=-g LIBS=-lposix
 
    *Note Defining Variables::, for more details.
 
@@ -87,17 +87,15 @@
 
 You can compile the package for more than one kind of computer at the
 same time, by placing the object files for each architecture in their
-own directory.  To do this, you must use a version of `make' that
-supports the `VPATH' variable, such as GNU `make'.  `cd' to the
+own directory.  To do this, you can use GNU `make'.  `cd' to the
 directory where you want the object files and executables to go and run
 the `configure' script.  `configure' automatically checks for the
 source code in the directory that `configure' is in and in `..'.
 
-   If you have to use a `make' that does not support the `VPATH'
-variable, you have to compile the package for one architecture at a
-time in the source code directory.  After you have installed the
-package for one architecture, use `make distclean' before reconfiguring
-for another architecture.
+   With a non-GNU `make', it is safer to compile the package for one
+architecture at a time in the source code directory.  After you have
+installed the package for one architecture, use `make distclean' before
+reconfiguring for another architecture.
 
 Installation Names
 ==================
@@ -190,12 +188,12 @@
      ./configure CC=/usr/local2/bin/gcc
 
 causes the specified `gcc' to be used as the C compiler (unless it is
-overridden in the site shell script).  Here is a another example:
+overridden in the site shell script).
 
-     /bin/bash ./configure CONFIG_SHELL=/bin/bash
+Unfortunately, this technique does not work for `CONFIG_SHELL' due to
+an Autoconf bug.  Until the bug is fixed you can use this workaround:
 
-Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent
-configuration-related scripts to be executed by `/bin/bash'.
+     CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
 
 `configure' Invocation
 ======================
Index: Makefile.am
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/Makefile.am,v
retrieving revision 1.8
diff -u -r1.8 Makefile.am
--- Makefile.am	22 Aug 2007 17:11:07 -0000	1.8
+++ Makefile.am	27 Aug 2007 19:21:40 -0000
@@ -27,10 +27,9 @@
 ##
 ACLOCAL_AMFLAGS = -I m4
 
-mini_SUBDIRS = config m4 lib libelf libelf-po
 # Add doc back when we have some real content.
-all_SUBDIRS = libebl libdwfl libdw libcpu libasm backends src po tests
-SUBDIRS = $(mini_SUBDIRS) $(all_SUBDIRS)
+SUBDIRS = config m4 lib libelf libebl libdwfl libdw libcpu libasm backends \
+	  src po tests
 
 EXTRA_DIST = elfutils.spec GPG-KEY NOTES
 
Index: NEWS
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/NEWS,v
retrieving revision 1.9
diff -u -r1.9 NEWS
--- NEWS	22 Aug 2007 17:11:07 -0000	1.9
+++ NEWS	27 Aug 2007 19:21:40 -0000
@@ -1,3 +1,15 @@
+Version 0.129:
+
+readelf: new options --hex-dump (or -x), --strings (or -p)
+
+addr2line: new option --symbols (or -S)
+
+Version 0.128:
+
+new program: unstrip
+
+elfcmp: new option --hash-inexact
+
 Version 0.127:
 
 libdw: new function dwarf_getsrcdirs
Index: configure.ac
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/configure.ac,v
retrieving revision 1.10
diff -u -r1.10 configure.ac
--- configure.ac	22 Aug 2007 17:11:07 -0000	1.10
+++ configure.ac	27 Aug 2007 19:21:40 -0000
@@ -16,7 +16,7 @@
 dnl along with this program; if not, write to the Free Software Foundation,
 dnl Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
 dnl
-AC_INIT([Red Hat elfutils],[0.127],[http://bugzilla.redhat.com/bugzilla/],
+AC_INIT([Red Hat elfutils],[0.129],[http://bugzilla.redhat.com/bugzilla/],
 	[elfutils])
 
 AC_CONFIG_AUX_DIR([config])
@@ -25,7 +25,12 @@
 AC_COPYRIGHT([Copyright (C) 1996-2003, 2004, 2005, 2006, 2007 Red Hat, Inc.])
 AC_PREREQ(2.59)			dnl Minimum Autoconf version required.
 
+<<<<<<< configure.ac
 AM_INIT_AUTOMAKE([gnits 1.7 -Wno-portability])
+=======
+dnl We use GNU make extensions; automake 1.10 defaults to -Wportability.
+AM_INIT_AUTOMAKE([gnits 1.7 -Wno-portability])
+>>>>>>> 1.1.1.5
 AM_MAINTAINER_MODE
 
 dnl Unique ID for this build.
@@ -180,7 +185,7 @@
 AC_CONFIG_FILES([lib/Makefile])
 
 dnl ELF library.
-AC_CONFIG_FILES([libelf/Makefile libelf-po/Makefile.in])
+AC_CONFIG_FILES([libelf/Makefile])
 
 dnl Higher-level ELF support library.
 AC_CONFIG_FILES([libebl/Makefile])
Index: backends/ChangeLog
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/backends/ChangeLog,v
retrieving revision 1.11
diff -u -r1.11 ChangeLog
--- backends/ChangeLog	22 Aug 2007 17:11:07 -0000	1.11
+++ backends/ChangeLog	27 Aug 2007 19:21:40 -0000
@@ -1,8 +1,33 @@
+<<<<<<< ChangeLog
 2006-06-23  Stepan Kasal  <kasal@ucw.cz>
 
 	* Makefile.am: Work around a bug in GNU make -jN by mentioning *.map.
 	* Makefile.am: Mention the *.o files.
 
+=======
+2007-05-23  Roland McGrath  <roland@redhat.com>
+
+	* alpha_regs.c (alpha_register_info): fp -> s6
+
+2007-04-26  Roland McGrath  <roland@redhat.com>
+
+	* alpha_symbol.c (alpha_machine_section_flag_check): New function.
+	* alpha_init.c (alpha_init): Initialize hook.
+
+	* alpha_regs.c: New file.
+	* Makefile.am (alpha_SRCS): Add it.
+	* alpha_init.c (alpha_init): Initialize register_info hook.
+
+2007-04-22  Roland McGrath  <roland@redhat.com>
+
+	* ppc_regs.c (ppc_register_info): Use some names instead of sprNNN:
+	mq, xer, lr, ctr, dsisr, dar, dec, vrsave.
+	Set *BITS to 64 for FPU registers.
+
+	* i386_regs.c (i386_register_info): Set *BITS to 16 for fctrl, fstat.
+	* x86_64_regs.c (x86_64_register_info): Likewise for fcw, fsw.
+
+>>>>>>> 1.1.1.5
 2007-04-01  Roland McGrath  <roland@redhat.com>
 
 	* x86_64_regs.c (x86_64_register_info): Add more registers from newer
Index: backends/Makefile.am
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/backends/Makefile.am,v
retrieving revision 1.9
diff -u -r1.9 Makefile.am
--- backends/Makefile.am	22 Aug 2007 17:11:07 -0000	1.9
+++ backends/Makefile.am	27 Aug 2007 19:21:40 -0000
@@ -1,6 +1,6 @@
 ## Process this file with automake to create Makefile.in
 ##
-## Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006 Red Hat, Inc.
+## Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Red Hat, Inc.
 ## This file is part of Red Hat elfutils.
 ##
 ## Red Hat elfutils is free software; you can redistribute it and/or modify
@@ -89,7 +89,7 @@
 libebl_ia64_pic_a_SOURCES = $(ia64_SRCS)
 am_libebl_ia64_pic_a_OBJECTS = $(ia64_SRCS:.c=.os)
 
-alpha_SRCS = alpha_init.c alpha_symbol.c alpha_retval.c
+alpha_SRCS = alpha_init.c alpha_symbol.c alpha_retval.c alpha_regs.c
 libebl_alpha_pic_a_SOURCES = $(alpha_SRCS)
 am_libebl_alpha_pic_a_OBJECTS = $(alpha_SRCS:.c=.os)
 
Index: backends/alpha_init.c
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/backends/alpha_init.c,v
retrieving revision 1.5
diff -u -r1.5 alpha_init.c
--- backends/alpha_init.c	22 Aug 2007 17:11:07 -0000	1.5
+++ backends/alpha_init.c	27 Aug 2007 19:21:40 -0000
@@ -1,5 +1,5 @@
 /* Initialization of Alpha specific backend library.
-   Copyright (C) 2002, 2005, 2006 Red Hat, Inc.
+   Copyright (C) 2002, 2005, 2006, 2007 Red Hat, Inc.
    This file is part of Red Hat elfutils.
    Written by Ulrich Drepper <drepper@redhat.com>, 2002.
 
@@ -54,6 +54,8 @@
   HOOK (eh, dynamic_tag_check);
   HOOK (eh, reloc_simple_type);
   HOOK (eh, return_value_location);
+  HOOK (eh, register_info);
+  HOOK (eh, machine_section_flag_check);
   eh->sysvhash_entrysize = sizeof (Elf64_Xword);
 
   return MODVERSION;
Index: backends/alpha_symbol.c
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/backends/alpha_symbol.c,v
retrieving revision 1.4
diff -u -r1.4 alpha_symbol.c
--- backends/alpha_symbol.c	22 Aug 2007 17:11:07 -0000	1.4
+++ backends/alpha_symbol.c	27 Aug 2007 19:21:40 -0000
@@ -1,5 +1,5 @@
 /* Alpha specific symbolic name handling.
-   Copyright (C) 2002, 2005 Red Hat, Inc.
+   Copyright (C) 2002, 2005, 2007 Red Hat, Inc.
    This file is part of Red Hat elfutils.
    Written by Ulrich Drepper <drepper@redhat.com>, 2002.
 
@@ -69,3 +69,11 @@
       return ELF_T_NUM;
     }
 }
+
+
+/* Check whether SHF_MASKPROC flags are valid.  */
+bool
+alpha_machine_section_flag_check (GElf_Xword sh_flags)
+{
+  return (sh_flags &~ (SHF_ALPHA_GPREL)) == 0;
+}
Index: backends/i386_regs.c
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/backends/i386_regs.c,v
retrieving revision 1.4
diff -u -r1.4 i386_regs.c
--- backends/i386_regs.c	22 Aug 2007 17:11:07 -0000	1.4
+++ backends/i386_regs.c	27 Aug 2007 19:21:40 -0000
@@ -1,5 +1,5 @@
 /* Register names and numbers for i386 DWARF.
-   Copyright (C) 2005, 2006 Red Hat, Inc.
+   Copyright (C) 2005, 2006, 2007 Red Hat, Inc.
    This file is part of Red Hat elfutils.
 
    Red Hat elfutils is free software; you can redistribute it and/or modify
@@ -125,8 +125,10 @@
       break;
 
     case 37:
+      *bits = 16;
       return stpcpy (name, "fctrl") + 1 - name;
     case 38:
+      *bits = 16;
       return stpcpy (name, "fstat") + 1 - name;
     case 39:
       return stpcpy (name, "mxcsr") + 1 - name;
Index: backends/ppc_regs.c
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/backends/ppc_regs.c,v
retrieving revision 1.4
diff -u -r1.4 ppc_regs.c
--- backends/ppc_regs.c	22 Aug 2007 17:11:07 -0000	1.4
+++ backends/ppc_regs.c	27 Aug 2007 19:21:40 -0000
@@ -1,5 +1,5 @@
 /* Register names and numbers for PowerPC DWARF.
-   Copyright (C) 2005, 2006 Red Hat, Inc.
+   Copyright (C) 2005, 2006, 2007 Red Hat, Inc.
    This file is part of Red Hat elfutils.
 
    Red Hat elfutils is free software; you can redistribute it and/or modify
@@ -53,7 +53,11 @@
   if (regno < 32 || regno == 64 || regno == 66)
     *setname = "integer";
   else if (regno < 64 || regno == 65)
-    *setname = "FPU";
+    {
+      *setname = "FPU";
+      if (ebl->machine != EM_PPC64 && regno < 64)
+	*bits = 64;
+    }
   else if (regno < 1124)
     *setname = "privileged";
   else
@@ -112,7 +116,25 @@
       namelen = 4;
       break;
 
-    case 100 ... 109:
+    case 101:
+      return stpcpy (name, "xer") + 1 - name;
+    case 108:
+      return stpcpy (name, "lr") + 1 - name;
+    case 109:
+      return stpcpy (name, "ctr") + 1 - name;
+    case 118:
+      return stpcpy (name, "dsisr") + 1 - name;
+    case 119:
+      return stpcpy (name, "dar") + 1 - name;
+    case 122:
+      return stpcpy (name, "dec") + 1 - name;
+    case 356:
+      return stpcpy (name, "vrsave") + 1 - name;
+    case 100:
+      if (*bits == 32)
+	return stpcpy (name, "mq") + 1 - name;
+
+    case 102 ... 107:
       name[0] = 's';
       name[1] = 'p';
       name[2] = 'r';
@@ -120,7 +142,9 @@
       namelen = 4;
       break;
 
-    case 110 ... 199:
+    case 110 ... 117:
+    case 120 ... 121:
+    case 123 ... 199:
       name[0] = 's';
       name[1] = 'p';
       name[2] = 'r';
@@ -129,7 +153,8 @@
       namelen = 5;
       break;
 
-    case 200 ... 999:
+    case 200 ... 355:
+    case 357 ... 999:
       name[0] = 's';
       name[1] = 'p';
       name[2] = 'r';
Index: backends/x86_64_regs.c
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/backends/x86_64_regs.c,v
retrieving revision 1.5
diff -u -r1.5 x86_64_regs.c
--- backends/x86_64_regs.c	22 Aug 2007 17:11:07 -0000	1.5
+++ backends/x86_64_regs.c	27 Aug 2007 19:21:40 -0000
@@ -165,6 +165,7 @@
       return stpcpy (name, "mxcsr") + 1 - name;
 
     case 65 ... 66:
+      *bits = 16;
       name[0] = 'f';
       name[1] = "cs"[regno - 65];
       name[2] = 'w';
Index: config/ChangeLog
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/config/ChangeLog,v
retrieving revision 1.4
diff -u -r1.4 ChangeLog
--- config/ChangeLog	22 Aug 2007 17:11:07 -0000	1.4
+++ config/ChangeLog	27 Aug 2007 19:21:40 -0000
@@ -1,3 +1,11 @@
+2007-08-08  Roland McGrath  <roland@redhat.com>
+
+	* elfutils.spec.in (License): Canonicalize.
+
+2007-04-23  Roland McGrath  <roland@redhat.com>
+
+	* elfutils.spec.in: Distribute eu-unstrip.
+
 2005-08-13  Roland McGrath  <roland@redhat.com>
 
 	* Makefile.am ($(srcdir)/elfutils.spec.in): Add missing $.
Index: config/config.guess
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/config/config.guess,v
retrieving revision 1.5
diff -u -r1.5 config.guess
--- config/config.guess	22 Aug 2007 17:11:07 -0000	1.5
+++ config/config.guess	27 Aug 2007 19:21:40 -0000
@@ -1,9 +1,10 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
+#   Inc.
 
-timestamp='2005-07-08'
+timestamp='2006-07-02'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -106,7 +107,7 @@
 trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
 trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
 : ${TMPDIR=/tmp} ;
- { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
  { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
  { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
  { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
@@ -206,8 +207,11 @@
     *:ekkoBSD:*:*)
 	echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
 	exit ;;
+    *:SolidBSD:*:*)
+	echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
+	exit ;;
     macppc:MirBSD:*:*)
-	echo powerppc-unknown-mirbsd${UNAME_RELEASE}
+	echo powerpc-unknown-mirbsd${UNAME_RELEASE}
 	exit ;;
     *:MirBSD:*:*)
 	echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
@@ -764,7 +768,14 @@
 	echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
 	exit ;;
     *:FreeBSD:*:*)
-	echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+	case ${UNAME_MACHINE} in
+	    pc98)
+		echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+	    amd64)
+		echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+	    *)
+		echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+	esac
 	exit ;;
     i*:CYGWIN*:*)
 	echo ${UNAME_MACHINE}-pc-cygwin
@@ -779,8 +790,11 @@
     i*:PW*:*)
 	echo ${UNAME_MACHINE}-pc-pw32
 	exit ;;
-    x86:Interix*:[34]*)
-	echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//'
+    x86:Interix*:[3456]*)
+	echo i586-pc-interix${UNAME_RELEASE}
+	exit ;;
+    EM64T:Interix*:[3456]*)
+	echo x86_64-unknown-interix${UNAME_RELEASE}
 	exit ;;
     [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
 	echo i${UNAME_MACHINE}-pc-mks
@@ -794,7 +808,7 @@
     i*:UWIN*:*)
 	echo ${UNAME_MACHINE}-pc-uwin
 	exit ;;
-    amd64:CYGWIN*:*:*)
+    amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
 	echo x86_64-unknown-cygwin
 	exit ;;
     p*:CYGWIN*:*)
@@ -817,6 +831,9 @@
     arm*:Linux:*:*)
 	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
+    avr32*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
     cris:Linux:*:*)
 	echo cris-axis-linux-gnu
 	exit ;;
@@ -851,7 +868,11 @@
 	#endif
 	#endif
 EOF
-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
+	eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
+	    /^CPU/{
+		s: ::g
+		p
+	    }'`"
 	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
 	;;
     mips64:Linux:*:*)
@@ -870,9 +891,16 @@
 	#endif
 	#endif
 EOF
-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
+	eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
+	    /^CPU/{
+		s: ::g
+		p
+	    }'`"
 	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
 	;;
+    or32:Linux:*:*)
+	echo or32-unknown-linux-gnu
+	exit ;;
     ppc:Linux:*:*)
 	echo powerpc-unknown-linux-gnu
 	exit ;;
@@ -916,6 +944,9 @@
     sparc:Linux:*:* | sparc64:Linux:*:*)
 	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
+    vax:Linux:*:*)
+	echo ${UNAME_MACHINE}-dec-linux-gnu
+	exit ;;
     x86_64:Linux:*:*)
 	echo x86_64-unknown-linux-gnu
 	exit ;;
@@ -961,7 +992,7 @@
 	LIBC=gnulibc1
 	# endif
 	#else
-	#ifdef __INTEL_COMPILER
+	#if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC)
 	LIBC=gnu
 	#else
 	LIBC=gnuaout
@@ -971,7 +1002,11 @@
 	LIBC=dietlibc
 	#endif
 EOF
-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
+	eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
+	    /^LIBC/{
+		s: ::g
+		p
+	    }'`"
 	test x"${LIBC}" != x && {
 		echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
 		exit
@@ -1182,7 +1217,6 @@
     *:Darwin:*:*)
 	UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
 	case $UNAME_PROCESSOR in
-	    *86) UNAME_PROCESSOR=i686 ;;
 	    unknown) UNAME_PROCESSOR=powerpc ;;
 	esac
 	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
@@ -1261,6 +1295,9 @@
     i*86:skyos:*:*)
 	echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
 	exit ;;
+    i*86:rdos:*:*)
+	echo ${UNAME_MACHINE}-pc-rdos
+	exit ;;
 esac
 
 #echo '(No uname command or uname output not recognized.)' 1>&2
Index: config/config.sub
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/config/config.sub,v
retrieving revision 1.5
diff -u -r1.5 config.sub
--- config/config.sub	22 Aug 2007 17:11:07 -0000	1.5
+++ config/config.sub	27 Aug 2007 19:21:40 -0000
@@ -1,9 +1,10 @@
 #! /bin/sh
 # Configuration validation subroutine script.
 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
+#   Inc.
 
-timestamp='2005-07-08'
+timestamp='2006-09-20'
 
 # This file is (in principle) common to ALL GNU software.
 # The presence of a machine in this file suggests that SOME GNU software
@@ -119,8 +120,9 @@
 # Here we must recognize all the valid KERNEL-OS combinations.
 maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
 case $maybe_os in
-  nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \
-  kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*)
+  nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
+  uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
+  storm-chaos* | os2-emx* | rtmk-nova*)
     os=-$maybe_os
     basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
     ;;
@@ -171,6 +173,10 @@
 	-hiux*)
 		os=-hiuxwe2
 		;;
+	-sco6)
+		os=-sco5v6
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
 	-sco5)
 		os=-sco3.2v5
 		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
@@ -187,6 +193,10 @@
 		# Don't forget version if it is 3.2v4 or newer.
 		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
 		;;
+	-sco5v6*)
+		# Don't forget version if it is 3.2v4 or newer.
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
 	-sco*)
 		os=-sco3.2v2
 		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
@@ -231,7 +241,7 @@
 	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
 	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
 	| am33_2.0 \
-	| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
+	| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
 	| bfin \
 	| c4x | clipper \
 	| d10v | d30v | dlx | dsp16xx \
@@ -239,7 +249,8 @@
 	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
 	| i370 | i860 | i960 | ia64 \
 	| ip2k | iq2000 \
-	| m32r | m32rle | m68000 | m68k | m88k | maxq | mcore \
+	| m32c | m32r | m32rle | m68000 | m68k | m88k \
+	| maxq | mb | microblaze | mcore \
 	| mips | mipsbe | mipseb | mipsel | mipsle \
 	| mips16 \
 	| mips64 | mips64el \
@@ -257,28 +268,27 @@
 	| mipsisa64sr71k | mipsisa64sr71kel \
 	| mipstx39 | mipstx39el \
 	| mn10200 | mn10300 \
-	| ms1 \
+	| mt \
 	| msp430 \
+	| nios | nios2 \
 	| ns16k | ns32k \
 	| or32 \
 	| pdp10 | pdp11 | pj | pjl \
 	| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
 	| pyramid \
-	| sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
+	| score \
+	| sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
 	| sh64 | sh64le \
-	| sparc | sparc64 | sparc64b | sparc86x | sparclet | sparclite \
-	| sparcv8 | sparcv9 | sparcv9b \
-	| strongarm \
+	| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
+	| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
+	| spu | strongarm \
 	| tahoe | thumb | tic4x | tic80 | tron \
 	| v850 | v850e \
 	| we32k \
-	| x86 | xscale | xscalee[bl] | xstormy16 | xtensa \
+	| x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
 	| z8k)
 		basic_machine=$basic_machine-unknown
 		;;
-	m32c)
-		basic_machine=$basic_machine-unknown
-		;;
 	m6811 | m68hc11 | m6812 | m68hc12)
 		# Motorola 68HC11/12.
 		basic_machine=$basic_machine-unknown
@@ -286,6 +296,9 @@
 		;;
 	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
 		;;
+	ms1)
+		basic_machine=mt-unknown
+		;;
 
 	# We use `pc' rather than `unknown'
 	# because (1) that's what they normally are, and
@@ -305,7 +318,7 @@
 	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
 	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
 	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
-	| avr-* \
+	| avr-* | avr32-* \
 	| bfin-* | bs2000-* \
 	| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
 	| clipper-* | craynv-* | cydra-* \
@@ -316,7 +329,7 @@
 	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
 	| i*86-* | i860-* | i960-* | ia64-* \
 	| ip2k-* | iq2000-* \
-	| m32r-* | m32rle-* \
+	| m32c-* | m32r-* | m32rle-* \
 	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
 	| m88110-* | m88k-* | maxq-* | mcore-* \
 	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
@@ -336,31 +349,30 @@
 	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
 	| mipstx39-* | mipstx39el-* \
 	| mmix-* \
-	| ms1-* \
+	| mt-* \
 	| msp430-* \
+	| nios-* | nios2-* \
 	| none-* | np1-* | ns16k-* | ns32k-* \
 	| orion-* \
 	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
 	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
 	| pyramid-* \
 	| romp-* | rs6000-* \
-	| sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | shbe-* \
+	| sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
 	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
-	| sparc-* | sparc64-* | sparc64b-* | sparc86x-* | sparclet-* \
+	| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
 	| sparclite-* \
-	| sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
+	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
 	| tahoe-* | thumb-* \
 	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
 	| tron-* \
 	| v850-* | v850e-* | vax-* \
 	| we32k-* \
-	| x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \
+	| x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
 	| xstormy16-* | xtensa-* \
 	| ymp-* \
 	| z8k-*)
 		;;
-	m32c-*)
-		;;
 	# Recognize the various machine names and aliases which stand
 	# for a CPU type and a company and sometimes even an OS.
 	386bsd)
@@ -696,6 +708,9 @@
 		basic_machine=i386-pc
 		os=-msdos
 		;;
+	ms1-*)
+		basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
+		;;
 	mvs)
 		basic_machine=i370-ibm
 		os=-mvs
@@ -803,6 +818,12 @@
 	pc532 | pc532-*)
 		basic_machine=ns32k-pc532
 		;;
+	pc98)
+		basic_machine=i386-pc
+		;;
+	pc98-*)
+		basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
 	pentium | p5 | k5 | k6 | nexgen | viac3)
 		basic_machine=i586-pc
 		;;
@@ -859,6 +880,10 @@
 		basic_machine=i586-unknown
 		os=-pw32
 		;;
+	rdos)
+		basic_machine=i386-pc
+		os=-rdos
+		;;
 	rom68k)
 		basic_machine=m68k-rom68k
 		os=-coff
@@ -885,6 +910,10 @@
 	sb1el)
 		basic_machine=mipsisa64sb1el-unknown
 		;;
+	sde)
+		basic_machine=mipsisa32-sde
+		os=-elf
+		;;
 	sei)
 		basic_machine=mips-sei
 		os=-seiux
@@ -1101,7 +1130,7 @@
 	sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele)
 		basic_machine=sh-unknown
 		;;
-	sparc | sparcv8 | sparcv9 | sparcv9b)
+	sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
 		basic_machine=sparc-sun
 		;;
 	cydra)
@@ -1174,21 +1203,23 @@
 	      | -aos* \
 	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
 	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
-	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \
+	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
+	      | -openbsd* | -solidbsd* \
 	      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
 	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
 	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
 	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
 	      | -chorusos* | -chorusrdb* \
 	      | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
-	      | -mingw32* | -linux-gnu* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \
+	      | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
+	      | -uxpv* | -beos* | -mpeix* | -udk* \
 	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
 	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
 	      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
 	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
 	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
 	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
-	      | -skyos* | -haiku*)
+	      | -skyos* | -haiku* | -rdos* | -toppers*)
 	# Remember, each alternative MUST END IN *, to match a version number.
 		;;
 	-qnx*)
@@ -1340,6 +1371,12 @@
 # system, and we'll never get to this point.
 
 case $basic_machine in
+        score-*)
+		os=-elf
+		;;
+        spu-*)
+		os=-elf
+		;;
 	*-acorn)
 		os=-riscix1.2
 		;;
@@ -1349,9 +1386,9 @@
 	arm*-semi)
 		os=-aout
 		;;
-    c4x-* | tic4x-*)
-        os=-coff
-        ;;
+        c4x-* | tic4x-*)
+        	os=-coff
+		;;
 	# This must come before the *-dec entry.
 	pdp10-*)
 		os=-tops20
Index: config/depcomp
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/config/depcomp,v
retrieving revision 1.5
diff -u -r1.5 depcomp
--- config/depcomp	22 Aug 2007 17:11:07 -0000	1.5
+++ config/depcomp	27 Aug 2007 19:21:41 -0000
@@ -1,9 +1,10 @@
 #! /bin/sh
 # depcomp - compile a program generating dependencies as side-effects
 
-scriptversion=2005-07-09.11
+scriptversion=2006-10-15.18
 
-# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
+# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006 Free Software
+# Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -91,7 +92,20 @@
 ## gcc 3 implements dependency tracking that does exactly what
 ## we want.  Yay!  Note: for some reason libtool 1.4 doesn't like
 ## it if -MD -MP comes after the -MF stuff.  Hmm.
-  "$@" -MT "$object" -MD -MP -MF "$tmpdepfile"
+## Unfortunately, FreeBSD c89 acceptance of flags depends upon
+## the command line argument order; so add the flags where they
+## appear in depend2.am.  Note that the slowdown incurred here
+## affects only configure: in makefiles, %FASTDEP% shortcuts this.
+  for arg
+  do
+    case $arg in
+    -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
+    *)  set fnord "$@" "$arg" ;;
+    esac
+    shift # fnord
+    shift # $arg
+  done
+  "$@"
   stat=$?
   if test $stat -eq 0; then :
   else
@@ -276,6 +290,46 @@
   rm -f "$tmpdepfile"
   ;;
 
+hp2)
+  # The "hp" stanza above does not work with aCC (C++) and HP's ia64
+  # compilers, which have integrated preprocessors.  The correct option
+  # to use with these is +Maked; it writes dependencies to a file named
+  # 'foo.d', which lands next to the object file, wherever that
+  # happens to be.
+  # Much of this is similar to the tru64 case; see comments there.
+  dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
+  test "x$dir" = "x$object" && dir=
+  base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+  if test "$libtool" = yes; then
+    tmpdepfile1=$dir$base.d
+    tmpdepfile2=$dir.libs/$base.d
+    "$@" -Wc,+Maked
+  else
+    tmpdepfile1=$dir$base.d
+    tmpdepfile2=$dir$base.d
+    "$@" +Maked
+  fi
+  stat=$?
+  if test $stat -eq 0; then :
+  else
+     rm -f "$tmpdepfile1" "$tmpdepfile2"
+     exit $stat
+  fi
+
+  for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
+  do
+    test -f "$tmpdepfile" && break
+  done
+  if test -f "$tmpdepfile"; then
+    sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
+    # Add `dependent.h:' lines.
+    sed -ne '2,${; s/^ *//; s/ \\*$//; s/$/:/; p;}' "$tmpdepfile" >> "$depfile"
+  else
+    echo "#dummy" > "$depfile"
+  fi
+  rm -f "$tmpdepfile" "$tmpdepfile2"
+  ;;
+
 tru64)
    # The Tru64 compiler uses -MD to generate dependencies as a side
    # effect.  `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
@@ -288,13 +342,13 @@
 
    if test "$libtool" = yes; then
       # With Tru64 cc, shared objects can also be used to make a
-      # static library.  This mecanism is used in libtool 1.4 series to
+      # static library.  This mechanism is used in libtool 1.4 series to
       # handle both shared and static libraries in a single compilation.
       # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
       #
       # With libtool 1.5 this exception was removed, and libtool now
       # generates 2 separate objects for the 2 libraries.  These two
-      # compilations output dependencies in in $dir.libs/$base.o.d and
+      # compilations output dependencies in $dir.libs/$base.o.d and
       # in $dir$base.o.d.  We have to check for both files, because
       # one of the two compilations can be disabled.  We should prefer
       # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
Index: config/elfutils.spec.in
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/config/elfutils.spec.in,v
retrieving revision 1.9
diff -u -r1.9 elfutils.spec.in
--- config/elfutils.spec.in	22 Aug 2007 17:11:07 -0000	1.9
+++ config/elfutils.spec.in	27 Aug 2007 19:21:41 -0000
@@ -3,7 +3,7 @@
 Name: elfutils
 Version: @PACKAGE_VERSION@
 Release: 1
-License: GPL
+License: GPLv2 with exceptions
 Group: Development/Tools
 Source: elfutils-%{version}.tar.gz
 Obsoletes: libelf libelf-devel
@@ -139,6 +139,7 @@
 %{_bindir}/eu-strings
 %{_bindir}/eu-objdump
 %{_bindir}/eu-ar
+%{_bindir}/eu-unstrip
 #%{_bindir}/eu-ld
 #%{_libdir}/libasm-%{version}.so
 %{_libdir}/libdw-%{version}.so
@@ -179,6 +180,10 @@
 %{_libdir}/libelf.a
 
 %changelog
+* Tue Aug 14 2007 Ulrich Drepper <drepper@redhat.com> 0.129-1
+- readelf: new options --hex-dump (or -x), --strings (or -p)
+- addr2line: new option --symbols (or -S)
+
 * Wed Apr 18 2007 Ulrich Drepper <drepper@redhat.com> 0.127-1
 - libdw: new function dwarf_getsrcdirs
 - libdwfl: new functions dwfl_module_addrsym, dwfl_report_begin_add,
@@ -225,7 +230,7 @@
 - Bug fixes.
 - dwarf.h updated for DWARF 3.0 final specification.
 - libdwfl: New function dwfl_version.
-- The license is now GPL for most files.  The libelf, libebl, libdw,and 
+- The license is now GPL for most files.  The libelf, libebl, libdw,and
 libdwfl libraries have additional exceptions.  Add reference toOIN.
 
 * Thu Jan 12 2006 Roland McGrath <roland@redhat.com> 0.119-1
Index: config/install-sh
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/config/install-sh,v
retrieving revision 1.5
diff -u -r1.5 install-sh
--- config/install-sh	22 Aug 2007 17:11:07 -0000	1.5
+++ config/install-sh	27 Aug 2007 19:21:41 -0000
@@ -1,7 +1,7 @@
 #!/bin/sh
 # install - install a program, script, or datafile
 
-scriptversion=2005-05-14.22
+scriptversion=2006-10-14.15
 
 # This originates from X11R5 (mit/util/scripts/install.sh), which was
 # later released in X11R6 (xc/config/util/install.sh) with the
@@ -39,15 +39,24 @@
 # when there is no Makefile.
 #
 # This script is compatible with the BSD install script, but was written
-# from scratch.  It can only install one file at a time, a restriction
-# shared with many OS's install programs.
+# from scratch.
+
+nl='
+'
+IFS=" ""	$nl"
 
 # set DOITPROG to echo to test this script
 
 # Don't use :- since 4.3BSD and earlier shells don't like it.
 doit="${DOITPROG-}"
+if test -z "$doit"; then
+  doit_exec=exec
+else
+  doit_exec=$doit
+fi
 
-# put in absolute paths if you don't have them in your path; or use env. vars.
+# Put in absolute file names if you don't have them in your path;
+# or use environment vars.
 
 mvprog="${MVPROG-mv}"
 cpprog="${CPPROG-cp}"
@@ -58,7 +67,13 @@
 rmprog="${RMPROG-rm}"
 mkdirprog="${MKDIRPROG-mkdir}"
 
-chmodcmd="$chmodprog 0755"
+posix_glob=
+posix_mkdir=
+
+# Desired mode of installed file.
+mode=0755
+
+chmodcmd=$chmodprog
 chowncmd=
 chgrpcmd=
 stripcmd=
@@ -95,7 +110,7 @@
   CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG
 "
 
-while test -n "$1"; do
+while test $# -ne 0; do
   case $1 in
     -c) shift
         continue;;
@@ -111,9 +126,15 @@
 
     --help) echo "$usage"; exit $?;;
 
-    -m) chmodcmd="$chmodprog $2"
+    -m) mode=$2
         shift
         shift
+	case $mode in
+	  *' '* | *'	'* | *'
+'*	  | *'*'* | *'?'* | *'['*)
+	    echo "$0: invalid mode: $mode" >&2
+	    exit 1;;
+	esac
         continue;;
 
     -o) chowncmd="$chownprog $2"
@@ -136,25 +157,33 @@
 
     --version) echo "$0 $scriptversion"; exit $?;;
 
-    *)  # When -d is used, all remaining arguments are directories to create.
-	# When -t is used, the destination is already specified.
-	test -n "$dir_arg$dstarg" && break
-        # Otherwise, the last argument is the destination.  Remove it from $@.
-	for arg
-	do
-          if test -n "$dstarg"; then
-	    # $@ is not empty: it contains at least $arg.
-	    set fnord "$@" "$dstarg"
-	    shift # fnord
-	  fi
-	  shift # arg
-	  dstarg=$arg
-	done
+    --)	shift
 	break;;
+
+    -*)	echo "$0: invalid option: $1" >&2
+	exit 1;;
+
+    *)  break;;
   esac
 done
 
-if test -z "$1"; then
+if test $# -ne 0 && test -z "$dir_arg$dstarg"; then
+  # When -d is used, all remaining arguments are directories to create.
+  # When -t is used, the destination is already specified.
+  # Otherwise, the last argument is the destination.  Remove it from $@.
+  for arg
+  do
+    if test -n "$dstarg"; then
+      # $@ is not empty: it contains at least $arg.
+      set fnord "$@" "$dstarg"
+      shift # fnord
+    fi
+    shift # arg
+    dstarg=$arg
+  done
+fi
+
+if test $# -eq 0; then
   if test -z "$dir_arg"; then
     echo "$0: no input file specified." >&2
     exit 1
@@ -164,6 +193,33 @@
   exit 0
 fi
 
+if test -z "$dir_arg"; then
+  trap '(exit $?); exit' 1 2 13 15
+
+  # Set umask so as not to create temps with too-generous modes.
+  # However, 'strip' requires both read and write access to temps.
+  case $mode in
+    # Optimize common cases.
+    *644) cp_umask=133;;
+    *755) cp_umask=22;;
+
+    *[0-7])
+      if test -z "$stripcmd"; then
+	u_plus_rw=
+      else
+	u_plus_rw='% 200'
+      fi
+      cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
+    *)
+      if test -z "$stripcmd"; then
+	u_plus_rw=
+      else
+	u_plus_rw=,u+rw
+      fi
+      cp_umask=$mode$u_plus_rw;;
+  esac
+fi
+
 for src
 do
   # Protect names starting with `-'.
@@ -173,15 +229,11 @@
 
   if test -n "$dir_arg"; then
     dst=$src
-    src=
-
-    if test -d "$dst"; then
-      mkdircmd=:
-      chmodcmd=
-    else
-      mkdircmd=$mkdirprog
-    fi
+    dstdir=$dst
+    test -d "$dstdir"
+    dstdir_status=$?
   else
+
     # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
     # might cause directories to be created, which would be especially bad
     # if $src (and thus $dsttmp) contains '*'.
@@ -208,53 +260,188 @@
 	echo "$0: $dstarg: Is a directory" >&2
 	exit 1
       fi
-      dst=$dst/`basename "$src"`
+      dstdir=$dst
+      dst=$dstdir/`basename "$src"`
+      dstdir_status=0
+    else
+      # Prefer dirname, but fall back on a substitute if dirname fails.
+      dstdir=`
+	(dirname "$dst") 2>/dev/null ||
+	expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	     X"$dst" : 'X\(//\)[^/]' \| \
+	     X"$dst" : 'X\(//\)$' \| \
+	     X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
+	echo X"$dst" |
+	    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+		   s//\1/
+		   q
+		 }
+		 /^X\(\/\/\)[^/].*/{
+		   s//\1/
+		   q
+		 }
+		 /^X\(\/\/\)$/{
+		   s//\1/
+		   q
+		 }
+		 /^X\(\/\).*/{
+		   s//\1/
+		   q
+		 }
+		 s/.*/./; q'
+      `
+
+      test -d "$dstdir"
+      dstdir_status=$?
     fi
   fi
 
-  # This sed command emulates the dirname command.
-  dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'`
-
-  # Make sure that the destination directory exists.
+  obsolete_mkdir_used=false
 
-  # Skip lots of stat calls in the usual case.
-  if test ! -d "$dstdir"; then
-    defaultIFS='
-	 '
-    IFS="${IFS-$defaultIFS}"
-
-    oIFS=$IFS
-    # Some sh's can't handle IFS=/ for some reason.
-    IFS='%'
-    set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
-    shift
-    IFS=$oIFS
+  if test $dstdir_status != 0; then
+    case $posix_mkdir in
+      '')
+	# Create intermediate dirs using mode 755 as modified by the umask.
+	# This is like FreeBSD 'install' as of 1997-10-28.
+	umask=`umask`
+	case $stripcmd.$umask in
+	  # Optimize common cases.
+	  *[2367][2367]) mkdir_umask=$umask;;
+	  .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
+
+	  *[0-7])
+	    mkdir_umask=`expr $umask + 22 \
+	      - $umask % 100 % 40 + $umask % 20 \
+	      - $umask % 10 % 4 + $umask % 2
+	    `;;
+	  *) mkdir_umask=$umask,go-w;;
+	esac
+
+	# With -d, create the new directory with the user-specified mode.
+	# Otherwise, rely on $mkdir_umask.
+	if test -n "$dir_arg"; then
+	  mkdir_mode=-m$mode
+	else
+	  mkdir_mode=
+	fi
+
+	posix_mkdir=false
+	case $umask in
+	  *[123567][0-7][0-7])
+	    # POSIX mkdir -p sets u+wx bits regardless of umask, which
+	    # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
+	    ;;
+	  *)
+	    tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
+	    trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
+
+	    if (umask $mkdir_umask &&
+		exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
+	    then
+	      if test -z "$dir_arg" || {
+		   # Check for POSIX incompatibilities with -m.
+		   # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
+		   # other-writeable bit of parent directory when it shouldn't.
+		   # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
+		   ls_ld_tmpdir=`ls -ld "$tmpdir"`
+		   case $ls_ld_tmpdir in
+		     d????-?r-*) different_mode=700;;
+		     d????-?--*) different_mode=755;;
+		     *) false;;
+		   esac &&
+		   $mkdirprog -m$different_mode -p -- "$tmpdir" && {
+		     ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
+		     test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
+		   }
+		 }
+	      then posix_mkdir=:
+	      fi
+	      rmdir "$tmpdir/d" "$tmpdir"
+	    else
+	      # Remove any dirs left behind by ancient mkdir implementations.
+	      rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
+	    fi
+	    trap '' 0;;
+	esac;;
+    esac
 
-    pathcomp=
+    if
+      $posix_mkdir && (
+	umask $mkdir_umask &&
+	$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
+      )
+    then :
+    else
 
-    while test $# -ne 0 ; do
-      pathcomp=$pathcomp$1
+      # The umask is ridiculous, or mkdir does not conform to POSIX,
+      # or it failed possibly due to a race condition.  Create the
+      # directory the slow way, step by step, checking for races as we go.
+
+      case $dstdir in
+	/*) prefix=/ ;;
+	-*) prefix=./ ;;
+	*)  prefix= ;;
+      esac
+
+      case $posix_glob in
+        '')
+	  if (set -f) 2>/dev/null; then
+	    posix_glob=true
+	  else
+	    posix_glob=false
+	  fi ;;
+      esac
+
+      oIFS=$IFS
+      IFS=/
+      $posix_glob && set -f
+      set fnord $dstdir
       shift
-      if test ! -d "$pathcomp"; then
-        $mkdirprog "$pathcomp"
-	# mkdir can fail with a `File exist' error in case several
-	# install-sh are creating the directory concurrently.  This
-	# is OK.
-	test -d "$pathcomp" || exit
+      $posix_glob && set +f
+      IFS=$oIFS
+
+      prefixes=
+
+      for d
+      do
+	test -z "$d" && continue
+
+	prefix=$prefix$d
+	if test -d "$prefix"; then
+	  prefixes=
+	else
+	  if $posix_mkdir; then
+	    (umask=$mkdir_umask &&
+	     $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
+	    # Don't fail if two instances are running concurrently.
+	    test -d "$prefix" || exit 1
+	  else
+	    case $prefix in
+	      *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
+	      *) qprefix=$prefix;;
+	    esac
+	    prefixes="$prefixes '$qprefix'"
+	  fi
+	fi
+	prefix=$prefix/
+      done
+
+      if test -n "$prefixes"; then
+	# Don't fail if two instances are running concurrently.
+	(umask $mkdir_umask &&
+	 eval "\$doit_exec \$mkdirprog $prefixes") ||
+	  test -d "$dstdir" || exit 1
+	obsolete_mkdir_used=true
       fi
-      pathcomp=$pathcomp/
-    done
+    fi
   fi
 
   if test -n "$dir_arg"; then
-    $doit $mkdircmd "$dst" \
-      && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \
-      && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \
-      && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \
-      && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; }
-
+    { test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
+    { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
+    { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
+      test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
   else
-    dstfile=`basename "$dst"`
 
     # Make a couple of temp file names in the proper directory.
     dsttmp=$dstdir/_inst.$$_
@@ -262,10 +449,9 @@
 
     # Trap to clean up those temp files at exit.
     trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
-    trap '(exit $?); exit' 1 2 13 15
 
     # Copy the file name to the temp name.
-    $doit $cpprog "$src" "$dsttmp" &&
+    (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
 
     # and set any options; do chmod last to preserve setuid bits.
     #
@@ -276,10 +462,10 @@
     { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \
       && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \
       && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \
-      && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } &&
+      && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
 
     # Now rename the file to the real destination.
-    { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \
+    { $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null \
       || {
 	   # The rename failed, perhaps because mv can't rename something else
 	   # to itself, or perhaps because mv is so ancient that it does not
@@ -291,11 +477,12 @@
 	   # reasons.  In this case, the final cleanup might fail but the new
 	   # file should still install successfully.
 	   {
-	     if test -f "$dstdir/$dstfile"; then
-	       $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \
-	       || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \
+	     if test -f "$dst"; then
+	       $doit $rmcmd -f "$dst" 2>/dev/null \
+	       || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null \
+		     && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }; }\
 	       || {
-		 echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
+		 echo "$0: cannot unlink or rename $dst" >&2
 		 (exit 1); exit 1
 	       }
 	     else
@@ -304,16 +491,13 @@
 	   } &&
 
 	   # Now rename the file to the real destination.
-	   $doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
+	   $doit $mvcmd "$dsttmp" "$dst"
 	 }
-    }
-  fi || { (exit 1); exit 1; }
-done
+    } || exit 1
 
-# The final little trick to "correctly" pass the exit status to the exit trap.
-{
-  (exit 0); exit 0
-}
+    trap '' 0
+  fi
+done
 
 # Local variables:
 # eval: (add-hook 'write-file-hooks 'time-stamp)
Index: config/missing
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/config/missing,v
retrieving revision 1.5
diff -u -r1.5 missing
--- config/missing	22 Aug 2007 17:11:07 -0000	1.5
+++ config/missing	27 Aug 2007 19:21:41 -0000
@@ -1,9 +1,9 @@
 #! /bin/sh
 # Common stub for a few missing GNU programs while installing.
 
-scriptversion=2005-06-08.21
+scriptversion=2006-05-10.23
 
-# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005
+# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006
 #   Free Software Foundation, Inc.
 # Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
 
@@ -33,6 +33,8 @@
 fi
 
 run=:
+sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
+sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
 
 # In the cases where this matters, `missing' is being run in the
 # srcdir already.
@@ -44,7 +46,7 @@
 
 msg="missing on your system"
 
-case "$1" in
+case $1 in
 --run)
   # Try to run requested program, and just exit if it succeeds.
   run=
@@ -77,6 +79,7 @@
   aclocal      touch file \`aclocal.m4'
   autoconf     touch file \`configure'
   autoheader   touch file \`config.h.in'
+  autom4te     touch the output file, or create a stub one
   automake     touch all \`Makefile.in' files
   bison        create \`y.tab.[ch]', if possible, from existing .[ch]
   flex         create \`lex.yy.c', if possible, from existing .c
@@ -106,7 +109,7 @@
 # Now exit if we have it, but it failed.  Also exit now if we
 # don't have it and --version was passed (most likely to detect
 # the program).
-case "$1" in
+case $1 in
   lex|yacc)
     # Not GNU programs, they don't have --version.
     ;;
@@ -135,7 +138,7 @@
 
 # If it does not exist, or fails to run (possibly an outdated version),
 # try to emulate it.
-case "$1" in
+case $1 in
   aclocal*)
     echo 1>&2 "\
 WARNING: \`$1' is $msg.  You should only need it if
@@ -164,7 +167,7 @@
     test -z "$files" && files="config.h"
     touch_files=
     for f in $files; do
-      case "$f" in
+      case $f in
       *:*) touch_files="$touch_files "`echo "$f" |
 				       sed -e 's/^[^:]*://' -e 's/:.*//'`;;
       *) touch_files="$touch_files $f.in";;
@@ -192,8 +195,8 @@
          You can get \`$1' as part of \`Autoconf' from any GNU
          archive site."
 
-    file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'`
-    test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'`
+    file=`echo "$*" | sed -n "$sed_output"`
+    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
     if test -f "$file"; then
 	touch $file
     else
@@ -214,25 +217,25 @@
          in order for those modifications to take effect.  You can get
          \`Bison' from any GNU archive site."
     rm -f y.tab.c y.tab.h
-    if [ $# -ne 1 ]; then
+    if test $# -ne 1; then
         eval LASTARG="\${$#}"
-	case "$LASTARG" in
+	case $LASTARG in
 	*.y)
 	    SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
-	    if [ -f "$SRCFILE" ]; then
+	    if test -f "$SRCFILE"; then
 	         cp "$SRCFILE" y.tab.c
 	    fi
 	    SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
-	    if [ -f "$SRCFILE" ]; then
+	    if test -f "$SRCFILE"; then
 	         cp "$SRCFILE" y.tab.h
 	    fi
 	  ;;
 	esac
     fi
-    if [ ! -f y.tab.h ]; then
+    if test ! -f y.tab.h; then
 	echo >y.tab.h
     fi
-    if [ ! -f y.tab.c ]; then
+    if test ! -f y.tab.c; then
 	echo 'main() { return 0; }' >y.tab.c
     fi
     ;;
@@ -244,18 +247,18 @@
          in order for those modifications to take effect.  You can get
          \`Flex' from any GNU archive site."
     rm -f lex.yy.c
-    if [ $# -ne 1 ]; then
+    if test $# -ne 1; then
         eval LASTARG="\${$#}"
-	case "$LASTARG" in
+	case $LASTARG in
 	*.l)
 	    SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
-	    if [ -f "$SRCFILE" ]; then
+	    if test -f "$SRCFILE"; then
 	         cp "$SRCFILE" lex.yy.c
 	    fi
 	  ;;
 	esac
     fi
-    if [ ! -f lex.yy.c ]; then
+    if test ! -f lex.yy.c; then
 	echo 'main() { return 0; }' >lex.yy.c
     fi
     ;;
@@ -267,11 +270,9 @@
 	 \`Help2man' package in order for those modifications to take
 	 effect.  You can get \`Help2man' from any GNU archive site."
 
-    file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
-    if test -z "$file"; then
-	file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
-    fi
-    if [ -f "$file" ]; then
+    file=`echo "$*" | sed -n "$sed_output"`
+    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
+    if test -f "$file"; then
 	touch $file
     else
 	test -z "$file" || exec >$file
@@ -289,11 +290,17 @@
          DU, IRIX).  You might want to install the \`Texinfo' package or
          the \`GNU make' package.  Grab either from any GNU archive site."
     # The file to touch is that specified with -o ...
-    file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
+    file=`echo "$*" | sed -n "$sed_output"`
+    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
     if test -z "$file"; then
       # ... or it is the one specified with @setfilename ...
       infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
-      file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile`
+      file=`sed -n '
+	/^@setfilename/{
+	  s/.* \([^ ]*\) *$/\1/
+	  p
+	  q
+	}' $infile`
       # ... or it is derived from the source name (dir/f.texi becomes f.info)
       test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
     fi
@@ -317,13 +324,13 @@
     fi
     firstarg="$1"
     if shift; then
-	case "$firstarg" in
+	case $firstarg in
 	*o*)
 	    firstarg=`echo "$firstarg" | sed s/o//`
 	    tar "$firstarg" "$@" && exit 0
 	    ;;
 	esac
-	case "$firstarg" in
+	case $firstarg in
 	*h*)
 	    firstarg=`echo "$firstarg" | sed s/h//`
 	    tar "$firstarg" "$@" && exit 0
Index: libdw/ChangeLog
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/libdw/ChangeLog,v
retrieving revision 1.9
diff -u -r1.9 ChangeLog
--- libdw/ChangeLog	22 Aug 2007 17:11:08 -0000	1.9
+++ libdw/ChangeLog	27 Aug 2007 19:21:41 -0000
@@ -1,3 +1,19 @@
+2007-08-07  Roland McGrath  <roland@redhat.com>
+
+	* dwarf_getscopes.c (pc_match): Swallow dwarf_haspc error return when
+	error code is DWARF_E_NOERROR (0).
+
+	* dwarf_getscopes.c (pc_record): Always bail early if DIE->prune.
+	Fix typo in __libdw_visit_scopes argument.
+
+	* dwarf_getscopes.c (pc_match): Check dwarf_haspc error return,
+	swallow DWARF_E_NO_DEBUG_RANGES but not other errors.
+
+2007-07-03  Roland McGrath  <roland@redhat.com>
+
+	* libdw.h (__extern_inline): New macro.
+	[__OPTIMIZE__] (dwarf_whatattr, dwarf_whatform): Use it.
+
 2007-04-16  Roland McGrath  <roland@redhat.com>
 
 	* libdw.map (ELFUTILS_0.127): Add dwfl_module_address_section.
Index: libdw/dwarf_getscopes.c
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/libdw/dwarf_getscopes.c,v
retrieving revision 1.4
diff -u -r1.4 dwarf_getscopes.c
--- libdw/dwarf_getscopes.c	22 Aug 2007 17:11:08 -0000	1.4
+++ libdw/dwarf_getscopes.c	27 Aug 2007 19:21:41 -0000
@@ -1,5 +1,5 @@
 /* Return scope DIEs containing PC address.
-   Copyright (C) 2005 Red Hat, Inc.
+   Copyright (C) 2005, 2007 Red Hat, Inc.
    This file is part of Red Hat elfutils.
 
    Red Hat elfutils is free software; you can redistribute it and/or modify
@@ -71,10 +71,32 @@
 {
   struct args *a = arg;
 
-  if (a->scopes != NULL || INTUSE(dwarf_haspc) (&die->die, a->pc) <= 0)
+  if (a->scopes != NULL)
     die->prune = true;
-  else if (INTUSE (dwarf_tag) (&die->die) == DW_TAG_inlined_subroutine)
-    a->inlined = depth;
+  else
+    {
+      /* dwarf_haspc returns an error if there are no appropriate attributes.
+	 But we use it indiscriminantly instead of presuming which tags can
+	 have PC attributes.  So when it fails for that reason, treat it just
+	 as a nonmatching return.  */
+      int result = INTUSE(dwarf_haspc) (&die->die, a->pc);
+      if (result < 0)
+	{
+	  int error = INTUSE(dwarf_errno) ();
+	  if (error != DWARF_E_NOERROR && error != DWARF_E_NO_DEBUG_RANGES)
+	    {
+	      __libdw_seterrno (error);
+	      return -1;
+	    }
+	  result = 0;
+	}
+      if (result == 0)
+    	die->prune = true;
+
+      if (!die->prune
+	  && INTUSE (dwarf_tag) (&die->die) == DW_TAG_inlined_subroutine)
+	a->inlined = depth;
+    }
 
   return 0;
 }
@@ -119,11 +141,11 @@
 {
   struct args *a = arg;
 
+  if (die->prune)
+    return 0;
+
   if (a->scopes == NULL)
     {
-      if (die->prune)
-	return 0;
-
       /* We have hit the innermost DIE that contains the target PC.  */
 
       a->nscopes = depth + 1 - a->inlined;
@@ -175,7 +197,7 @@
      If we don't find it, return to search the containing scope.
      If we do find it, the nonzero return value will bail us out
      of the postorder traversal.  */
-  return __libdw_visit_scopes (depth, die, &origin_match, NULL, &a);
+  return __libdw_visit_scopes (depth, die, &origin_match, NULL, a);
 }
 
 
Index: libdw/libdw.h
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/libdw/libdw.h,v
retrieving revision 1.8
diff -u -r1.8 libdw.h
--- libdw/libdw.h	22 Aug 2007 17:11:08 -0000	1.8
+++ libdw/libdw.h	27 Aug 2007 19:21:41 -0000
@@ -61,6 +61,12 @@
 # define __nonnull_attribute__(args...)
 #endif
 
+#ifdef __GNUC_STDC_INLINE__
+# define __extern_inline extern __inline __attribute__ ((__gnu_inline__))
+#else
+# define __extern_inline extern __inline
+#endif
+
 
 /* Mode for the session.  */
 typedef enum
@@ -624,14 +630,14 @@
 /* Inline optimizations.  */
 #ifdef __OPTIMIZE__
 /* Return attribute code of given attribute.  */
-extern inline unsigned int
+__extern_inline unsigned int
 dwarf_whatattr (Dwarf_Attribute *attr)
 {
   return attr == NULL ? 0 : attr->code;
 }
 
 /* Return attribute code of given attribute.  */
-extern inline unsigned int
+__extern_inline unsigned int
 dwarf_whatform (Dwarf_Attribute *attr)
 {
   return attr == NULL ? 0 : attr->form;
Index: libdwfl/ChangeLog
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/libdwfl/ChangeLog,v
retrieving revision 1.14
diff -u -r1.14 ChangeLog
--- libdwfl/ChangeLog	22 Aug 2007 17:11:08 -0000	1.14
+++ libdwfl/ChangeLog	27 Aug 2007 19:21:41 -0000
@@ -1,3 +1,4 @@
+<<<<<<< ChangeLog
 2007-07-26  Andrew Cagney  <cagney@redhat.com>
 
 	* dwfl_module_addrsym.c (dwfl_module_addrsym): When looking for a
@@ -17,6 +18,65 @@
 	* dwfl_module.c (dwfl_report_module): Increment nmodule when old
 	module is detected. Fixes bug with updating modules.
 
+=======
+2007-08-13  Roland McGrath  <roland@redhat.com>
+
+	* dwfl_module_addrsym.c: Add dead initializer for stupid compiler.
+
+2007-08-12  Roland McGrath  <roland@redhat.com>
+
+	* linux-kernel-modules.c (dwfl_linux_kernel_report_offline): Don't use
+	FTS_LOGICAL.
+
+	* elf-from-memory.c (elf_from_remote_memory): Don't reset LOADBASE on
+	a second phdr if it happens to match EHDR_VMA exactly.
+
+2007-08-08  Roland McGrath  <roland@redhat.com>
+
+	* dwfl_module_addrsym.c: Don't use STT_SECTION, STT_FILE symbols and
+	those with no names.  Rewrite best symbol algorithm not to assume a
+	sorted table and to be smarter handling sizeless symbols.
+
+2007-07-16  Roland McGrath  <roland@redhat.com>
+
+	* dwfl_module.c (dwfl_report_module): Increment DWFL->nmodules when
+	reviving an existing module.
+
+2007-06-08  Roland McGrath  <roland@redhat.com>
+
+	* libdwflP.h: Fix #ifndef for config.h to use PACKAGE_NAME.
+
+2007-05-17  Roland McGrath  <roland@redhat.com>
+
+	* linux-kernel-modules.c (dwfl_linux_kernel_report_offline): Look at
+	whole /lib/modules/VERSION tree, not just /lib/modules/VERSION/kernel.
+	(dwfl_linux_kernel_find_elf): Likewise.
+
+	* linux-kernel-modules.c (dwfl_linux_kernel_report_modules): Use
+	getline and sscanf instead of fscanf.
+
+2007-05-08  Roland McGrath  <roland@redhat.com>
+
+	* offline.c (dwfl_offline_section_address): Don't assume section
+	numbers match between stripped and debuginfo files.  Instead, assume
+	only that the ordering among SHF_ALLOC sections matches.
+
+	* linux-kernel-modules.c (report_kernel): Change RELEASE argument to
+	pointer to string.
+	(dwfl_linux_kernel_report_offline): Update caller.
+	(dwfl_linux_kernel_report_kernel): Likewise.
+
+2007-04-23  Roland McGrath  <roland@redhat.com>
+
+	* argp-std.c (options): Fix group title string.
+
+	* argp-std.c (parse_opt): Handle ARGP_KEY_ERROR, free the Dwfl.
+	Update via STATE->input every time we set STATE->hook, not only at
+	ARGP_KEY_SUCCESS.
+
+	* dwfl_module.c (free_file): Free FILE->name.
+
+>>>>>>> 1.1.1.5
 2007-04-16  Roland McGrath  <roland@redhat.com>
 
 	* derelocate.c (cache_sections): Apply bias to sh_addr.
Index: libdwfl/argp-std.c
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/libdwfl/argp-std.c,v
retrieving revision 1.5
diff -u -r1.5 argp-std.c
--- libdwfl/argp-std.c	22 Aug 2007 17:11:08 -0000	1.5
+++ libdwfl/argp-std.c	27 Aug 2007 19:21:41 -0000
@@ -61,7 +61,7 @@
 
 static const struct argp_option options[] =
 {
-  { NULL, 0, NULL, 0, N_("Input Selection:"), 0 },
+  { NULL, 0, NULL, 0, N_("Input selection options:"), 0 },
   { "executable", 'e', "FILE", 0, N_("Find addresses in FILE"), 0 },
   { "pid", 'p', "PID", 0,
     N_("Find addresses in files mapped into process PID"), 0 },
@@ -244,14 +244,20 @@
 
 	int result = INTUSE(dwfl_report_end) (dwfl, NULL, NULL);
 	assert (result == 0);
-
-	*(Dwfl **) state->input = dwfl;
       }
       break;
 
+    case ARGP_KEY_ERROR:
+      dwfl_end (state->hook);
+      state->hook = NULL;
+      break;
+
     default:
       return ARGP_ERR_UNKNOWN;
     }
+
+  /* Update the input all along, so a parent parser can see it.  */
+  *(Dwfl **) state->input = state->hook;
   return 0;
 }
 
Index: libdwfl/dwfl_module.c
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/libdwfl/dwfl_module.c,v
retrieving revision 1.10
diff -u -r1.10 dwfl_module.c
--- libdwfl/dwfl_module.c	22 Aug 2007 17:11:08 -0000	1.10
+++ libdwfl/dwfl_module.c	27 Aug 2007 19:21:41 -0000
@@ -67,6 +67,7 @@
 static void
 free_file (struct dwfl_file *file)
 {
+  free (file->name);
   if (file->elf != NULL)
     {
       elf_end (file->elf);
@@ -144,6 +145,7 @@
   /* This module is still here.  Move it to the place in the list
      after the last module already reported.  */
 
+<<<<<<< dwfl_module.c
   *prevp = m->next;
   m->next = *tailp;
   m->gc = false;
@@ -151,6 +153,15 @@
   ++dwfl->nmodules;
   return m;
 }
+=======
+	  *prevp = m->next;
+	  m->next = *tailp;
+	  m->gc = false;
+	  *tailp = m;
+	  ++dwfl->nmodules;
+	  return m;
+	}
+>>>>>>> 1.1.1.4
 
 if (! m->gc)
 tailp = &m->next;
Index: libdwfl/dwfl_module_addrsym.c
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/libdwfl/dwfl_module_addrsym.c,v
retrieving revision 1.6
diff -u -r1.6 dwfl_module_addrsym.c
--- libdwfl/dwfl_module_addrsym.c	22 Aug 2007 17:11:08 -0000	1.6
+++ libdwfl/dwfl_module_addrsym.c	27 Aug 2007 19:21:41 -0000
@@ -97,17 +97,34 @@
       return shndx == addr_shndx;
     }
 
-  /* Look through the symbol table for a matching symbol.  */
+  /* Keep track of the closest symbol we have seen so far.
+     Here we store only symbols with nonzero st_size.  */
   const char *closest_name = NULL;
+<<<<<<< dwfl_module_addrsym.c
   memset(closest_sym, 0, sizeof(*closest_sym));
+=======
+>>>>>>> 1.1.1.2
   GElf_Word closest_shndx = SHN_UNDEF;
+
+  /* Keep track of an eligible symbol with st_size == 0 as a fallback.  */
+  const char *sizeless_name = NULL;
+  GElf_Sym sizeless_sym = { 0, 0, 0, 0, 0, SHN_UNDEF };
+  GElf_Word sizeless_shndx = SHN_UNDEF;
+
+  /* Keep track of the lowest address a relevant sizeless symbol could have.  */
+  GElf_Addr min_label = addr;
+
+  /* Look through the symbol table for a matching symbol.  */
   for (int i = 1; i < syments; ++i)
     {
       GElf_Sym sym;
       GElf_Word shndx;
       const char *name = INTUSE(dwfl_module_getsym) (mod, i, &sym, &shndx);
-      if (name != NULL && sym.st_value <= addr)
+      if (name != NULL
+	  && sym.st_value <= addr
+	  && (sym.st_size == 0 || addr - sym.st_value < sym.st_size))
 	{
+<<<<<<< dwfl_module_addrsym.c
 	  inline void closest (void)
 	    {
 	      *closest_sym = sym;
@@ -118,7 +135,26 @@
 	  /* This symbol contains ADDR; but is it better than the
 	     previous candidate?  */
 	  if (addr < sym.st_value + sym.st_size)
+=======
+	  /* Even if we don't choose this symbol, its existence
+	     excludes any sizeless symbol (assembly label) that
+	     is inside its bounds.  */
+	  if (sym.st_value + sym.st_size > addr)
+	    min_label = sym.st_value + sym.st_size;
+
+	  /* This symbol is a better candidate than the current one
+	     if it's a named symbol, not a section or file symbol,
+	     and is closer to ADDR or is global when it was local.  */
+	  if (name[0] != '\0'
+	      && GELF_ST_TYPE (sym.st_info) != STT_SECTION
+	      && GELF_ST_TYPE (sym.st_info) != STT_FILE
+	      && (closest_name == NULL
+		  || closest_sym->st_value < sym.st_value
+		  || (GELF_ST_BIND (closest_sym->st_info)
+		      < GELF_ST_BIND (sym.st_info))))
+>>>>>>> 1.1.1.2
 	    {
+<<<<<<< dwfl_module_addrsym.c
 	      if (addr >= closest_sym->st_value + closest_sym->st_size)
 		{
 		  /* Ha! The previous candidate doesn't even contain
@@ -143,13 +179,37 @@
 	      /* Discard this candidate, no better than the previous
 		 sized symbol that contained ADDR.  */
 	      continue;
+=======
+	      if (sym.st_size != 0)
+		{
+		  *closest_sym = sym;
+		  closest_shndx = shndx;
+		  closest_name = name;
+		}
+	      else if (same_section (&sym, shndx))
+		{
+		  /* Handwritten assembly symbols sometimes have no st_size.
+		     If no symbol with proper size includes the address,
+		     we'll use the closest one that is in the same section
+		     as ADDR.  */
+		  sizeless_sym = sym;
+		  sizeless_shndx = shndx;
+		  sizeless_name = name;
+		}
+>>>>>>> 1.1.1.2
 	    }
+<<<<<<< dwfl_module_addrsym.c
 	  
 	  /* The current closest symbol contains ADDR, can't do better
 	     than that.  */
 	  if (addr < closest_sym->st_value + closest_sym->st_size)
 	    continue;
+=======
+	}
+    }
+>>>>>>> 1.1.1.2
 
+<<<<<<< dwfl_module_addrsym.c
 	  /* Save the symbol which is "closer".  Use the end-address
 	     so that a sized symbol that ends closer to an unsized
 	     symbol wins (unsized symbols are typically created using
@@ -162,6 +222,16 @@
 	      continue;
 	    }
 	}
+=======
+  /* If we found no proper sized symbol to use, fall back to the best
+     candidate sizeless symbol we found, if any.  */
+  if (closest_name == NULL
+      && sizeless_name != NULL && sizeless_sym.st_value >= min_label)
+    {
+      *closest_sym = sizeless_sym;
+      closest_shndx = sizeless_shndx;
+      closest_name = sizeless_name;
+>>>>>>> 1.1.1.2
     }
 
   /* If the closest symbol has a size doesn't contain ADDR, discard
Index: libdwfl/elf-from-memory.c
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/libdwfl/elf-from-memory.c,v
retrieving revision 1.6
diff -u -r1.6 elf-from-memory.c
--- libdwfl/elf-from-memory.c	22 Aug 2007 17:11:08 -0000	1.6
+++ libdwfl/elf-from-memory.c	27 Aug 2007 19:21:42 -0000
@@ -213,6 +213,7 @@
   size_t contents_size = 0;
   GElf_Off segments_end = 0;
   GElf_Addr loadbase = ehdr_vma;
+  bool found_base = false;
   switch (ehdr.e32.e_ident[EI_CLASS])
     {
       inline void handle_segment (GElf_Addr vaddr, GElf_Off offset,
@@ -223,8 +224,11 @@
 	  if (segment_end > (GElf_Off) contents_size)
 	    contents_size = segment_end;
 
-	  if ((offset & -align) == 0 && loadbase == ehdr_vma)
-	    loadbase = ehdr_vma - (vaddr & -align);
+	  if (!found_base && (offset & -align) == 0)
+	    {
+	      loadbase = ehdr_vma - (vaddr & -align);
+	      found_base = true;
+	    }
 
 	  segments_end = offset + filesz;
 	}
Index: libdwfl/libdwflP.h
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/libdwfl/libdwflP.h,v
retrieving revision 1.8
diff -u -r1.8 libdwflP.h
--- libdwfl/libdwflP.h	22 Aug 2007 17:11:08 -0000	1.8
+++ libdwfl/libdwflP.h	27 Aug 2007 19:21:42 -0000
@@ -50,7 +50,7 @@
 #ifndef _LIBDWFLP_H
 #define _LIBDWFLP_H	1
 
-#ifndef PACKAGE
+#ifndef PACKAGE_NAME
 # include <config.h>
 #endif
 #include <libdwfl.h>
Index: libdwfl/linux-kernel-modules.c
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/libdwfl/linux-kernel-modules.c,v
retrieving revision 1.6
diff -u -r1.6 linux-kernel-modules.c
--- libdwfl/linux-kernel-modules.c	22 Aug 2007 17:11:08 -0000	1.6
+++ libdwfl/linux-kernel-modules.c	27 Aug 2007 19:21:42 -0000
@@ -139,21 +139,24 @@
 }
 
 static int
-report_kernel (Dwfl *dwfl, const char *release,
+report_kernel (Dwfl *dwfl, const char **release,
 	       int (*predicate) (const char *module, const char *file))
 {
   if (dwfl == NULL)
     return -1;
 
-  if (release == NULL)
+  const char *release_string = release == NULL ? NULL : *release;
+  if (release_string == NULL)
     {
-      release = kernel_release ();
-      if (release == NULL)
+      release_string = kernel_release ();
+      if (release_string == NULL)
 	return errno;
+      if (release != NULL)
+	*release = release_string;
     }
 
   char *fname;
-  int fd = find_kernel_elf (dwfl, release, &fname);
+  int fd = find_kernel_elf (dwfl, release_string, &fname);
 
   int result = 0;
   if (fd < 0)
@@ -198,21 +201,21 @@
 						    const char *file))
 {
   /* First report the kernel.  */
-  int result = report_kernel (dwfl, release, predicate);
+  int result = report_kernel (dwfl, &release, predicate);
   if (result == 0)
     {
-      /* Do "find /lib/modules/RELEASE/kernel -name *.ko".  */
+      /* Do "find /lib/modules/RELEASE -name *.ko".  */
 
       char *modulesdir[] = { NULL, NULL };
       if (release[0] == '/')
 	modulesdir[0] = (char *) release;
       else
 	{
-	  if (asprintf (&modulesdir[0], MODULEDIRFMT "/kernel", release) < 0)
+	  if (asprintf (&modulesdir[0], MODULEDIRFMT, release) < 0)
 	    return errno;
 	}
 
-      FTS *fts = fts_open (modulesdir, FTS_LOGICAL | FTS_NOSTAT, NULL);
+      FTS *fts = fts_open (modulesdir, FTS_NOSTAT, NULL);
       if (modulesdir[0] == (char *) release)
 	modulesdir[0] = NULL;
       if (fts == NULL)
@@ -394,13 +397,13 @@
   if (!strcmp (module_name, KERNEL_MODNAME))
     return find_kernel_elf (mod->dwfl, release, file_name);
 
-  /* Do "find /lib/modules/`uname -r`/kernel -name MODULE_NAME.ko".  */
+  /* Do "find /lib/modules/`uname -r` -name MODULE_NAME.ko".  */
 
   char *modulesdir[] = { NULL, NULL };
-  if (asprintf (&modulesdir[0], MODULEDIRFMT "/kernel", release) < 0)
+  if (asprintf (&modulesdir[0], MODULEDIRFMT, release) < 0)
     return -1;
 
-  FTS *fts = fts_open (modulesdir, FTS_LOGICAL | FTS_NOSTAT, NULL);
+  FTS *fts = fts_open (modulesdir, FTS_NOSTAT, NULL);
   if (fts == NULL)
     {
       free (modulesdir[0]);
@@ -609,14 +612,21 @@
   Dwarf_Addr modaddr;
   unsigned long int modsz;
   char modname[128];
-  while (fscanf (f, "%128s %lu %*s %*s %*s %" PRIx64 "\n",
-		 modname, &modsz, &modaddr) == 3)
+  char *line = NULL;
+  size_t linesz = 0;
+  /* We can't just use fscanf here because it's not easy to distinguish \n
+     from other whitespace so as to take the optional word following the
+     address but always stop at the end of the line.  */
+  while (getline (&line, &linesz, f) > 0
+	 && sscanf (line, "%128s %lu %*s %*s %*s %" PRIx64 " %*s\n",
+		    modname, &modsz, &modaddr) == 3)
     if (INTUSE(dwfl_report_module) (dwfl, modname,
 				    modaddr, modaddr + modsz) == NULL)
       {
 	result = -1;
 	break;
       }
+  free (line);
 
   if (result == 0)
     result = ferror_unlocked (f) ? errno : feof_unlocked (f) ? 0 : ENOEXEC;
Index: libdwfl/offline.c
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/libdwfl/offline.c,v
retrieving revision 1.6
diff -u -r1.6 offline.c
--- libdwfl/offline.c	22 Aug 2007 17:11:08 -0000	1.6
+++ libdwfl/offline.c	27 Aug 2007 19:21:42 -0000
@@ -65,21 +65,53 @@
 			      const GElf_Shdr *shdr __attribute__ ((unused)),
 			      Dwarf_Addr *addr)
 {
-  GElf_Shdr shdr_mem;
-  GElf_Shdr *main_shdr = gelf_getshdr (elf_getscn (mod->main.elf, shndx),
-				       &shdr_mem);
-  if (unlikely (main_shdr == NULL))
-    return -1;
-
+  assert (mod->e_type == ET_REL);
   assert (shdr->sh_addr == 0);
   assert (shdr->sh_flags & SHF_ALLOC);
-  assert (main_shdr->sh_flags == shdr->sh_flags);
 
-  if (main_shdr->sh_addr != 0)
-    assert (mod->symfile != &mod->main);
+  if (mod->symfile == &mod->main)
+    {
+      /* Because the actual address is zero, we failed to notice
+	 we in fact had the right address cached already.  */
+      *addr = 0;
+      return 0;
+    }
+
+  /* The section numbers might not match between the two files.
+     The best we can rely on is the order of SHF_ALLOC sections.  */
+
+  Elf_Scn *ourscn = elf_getscn (mod->symfile->elf, shndx);
+  Elf_Scn *scn = NULL;
+  uint_fast32_t skip_alloc = 0;
+  while ((scn = elf_nextscn (mod->symfile->elf, scn)) != ourscn)
+    {
+      assert (scn != NULL);
+      GElf_Shdr shdr_mem;
+      GElf_Shdr *sh = gelf_getshdr (scn, &shdr_mem);
+      if (unlikely (sh == NULL))
+	return -1;
+      if (sh->sh_flags & SHF_ALLOC)
+	++skip_alloc;
+    }
+
+  scn = NULL;
+  while ((scn = elf_nextscn (mod->main.elf, scn)) != NULL)
+    {
+      GElf_Shdr shdr_mem;
+      GElf_Shdr *main_shdr = gelf_getshdr (elf_getscn (mod->main.elf, shndx),
+					   &shdr_mem);
+      if (unlikely (main_shdr == NULL))
+	return -1;
+      if ((main_shdr->sh_flags & SHF_ALLOC) && skip_alloc-- == 0)
+	{
+	  assert (main_shdr->sh_flags == shdr->sh_flags);
+	  *addr = main_shdr->sh_addr;
+	  return 0;
+	}
+    }
 
-  *addr = main_shdr->sh_addr;
-  return 0;
+  /* This should never happen.  */
+  return -1;
 }
 INTDEF (dwfl_offline_section_address)
 
Index: libebl/ChangeLog
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/libebl/ChangeLog,v
retrieving revision 1.8
diff -u -r1.8 ChangeLog
--- libebl/ChangeLog	22 Aug 2007 17:11:08 -0000	1.8
+++ libebl/ChangeLog	27 Aug 2007 19:21:42 -0000
@@ -1,3 +1,14 @@
+2007-07-09  Roland McGrath  <roland@redhat.com>
+
+	* eblobjnotetypename.c (ebl_object_note_type_name): Handle
+	NT_GNU_HWCAP, NT_GNU_BUILD_ID.
+
+	* eblobjnote.c (ebl_object_note): Handle NT_GNU_BUILD_ID.
+
+2007-04-22  Roland McGrath  <roland@redhat.com>
+
+	* eblcorenotetypename.c (ebl_core_note_type_name): Handle NT_PRXFPREG.
+
 2007-03-10  Roland McGrath  <roland@redhat.com>
 
 	* eblcorenote.c (ebl_core_note): For normally-zero types,
Index: libebl/eblcorenotetypename.c
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/libebl/eblcorenotetypename.c,v
retrieving revision 1.4
diff -u -r1.4 eblcorenotetypename.c
--- libebl/eblcorenotetypename.c	22 Aug 2007 17:11:08 -0000	1.4
+++ libebl/eblcorenotetypename.c	27 Aug 2007 19:21:42 -0000
@@ -1,5 +1,5 @@
 /* Return note type name.
-   Copyright (C) 2002 Red Hat, Inc.
+   Copyright (C) 2002, 2007 Red Hat, Inc.
    This file is part of Red Hat elfutils.
    Written by Ulrich Drepper <drepper@redhat.com>, 2002.
 
@@ -92,6 +92,8 @@
       if (type < sizeof (knowntypes) / sizeof (knowntypes[0])
 	  && knowntypes[type] != NULL)
 	res = knowntypes[type];
+      else if (type == NT_PRXFPREG)
+	res = "PRXFPREG";
       else
 	{
 	  snprintf (buf, len, "%s: %" PRIu32, gettext ("<unknown>"), type);
Index: libebl/eblobjnote.c
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/libebl/eblobjnote.c,v
retrieving revision 1.4
diff -u -r1.4 eblobjnote.c
--- libebl/eblobjnote.c	22 Aug 2007 17:11:08 -0000	1.4
+++ libebl/eblobjnote.c	27 Aug 2007 19:21:42 -0000
@@ -1,5 +1,5 @@
 /* Print contents of object file note.
-   Copyright (C) 2002 Red Hat, Inc.
+   Copyright (C) 2002, 2007 Red Hat, Inc.
    This file is part of Red Hat elfutils.
    Written by Ulrich Drepper <drepper@redhat.com>, 2002.
 
@@ -70,6 +70,17 @@
     /* The machine specific function did not know this type.  */
     switch (type)
       {
+      case NT_GNU_BUILD_ID:
+	if (strcmp (name, "GNU") == 0 && descsz > 0)
+	  {
+	    printf (gettext ("    Build ID: "));
+	    uint_fast32_t i;
+	    for (i = 0; i < descsz - 1; ++i)
+	      printf ("%02" PRIx8, (uint8_t) desc[i]);
+	    printf ("%02" PRIx8 "\n", (uint8_t) desc[i]);
+	  }
+	break;
+
       case NT_VERSION:
 	if (strcmp (name, "GNU") == 0 && descsz >= 8)
 	  {
Index: libebl/eblobjnotetypename.c
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/libebl/eblobjnotetypename.c,v
retrieving revision 1.4
diff -u -r1.4 eblobjnotetypename.c
--- libebl/eblobjnotetypename.c	22 Aug 2007 17:11:08 -0000	1.4
+++ libebl/eblobjnotetypename.c	27 Aug 2007 19:21:42 -0000
@@ -1,5 +1,5 @@
 /* Return note type name.
-   Copyright (C) 2002 Red Hat, Inc.
+   Copyright (C) 2002, 2007 Red Hat, Inc.
    This file is part of Red Hat elfutils.
    Written by Ulrich Drepper <drepper@redhat.com>, 2002.
 
@@ -72,6 +72,8 @@
 	{
 #define KNOWNSTYPE(name) [NT_##name] = #name
 	  KNOWNSTYPE (VERSION),
+	  KNOWNSTYPE (GNU_HWCAP),
+	  KNOWNSTYPE (GNU_BUILD_ID),
 	};
 
       /* Handle standard names.  */
Index: libelf/ChangeLog
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/libelf/ChangeLog,v
retrieving revision 1.8
diff -u -r1.8 ChangeLog
--- libelf/ChangeLog	22 Aug 2007 17:11:08 -0000	1.8
+++ libelf/ChangeLog	27 Aug 2007 19:21:42 -0000
@@ -1,3 +1,16 @@
+2007-08-12  Roland McGrath  <roland@redhat.com>
+
+	* elf32_updatefile.c (compare_sections): Sort secondarily on sh_size,
+	and only tertiarily on index.
+
+2007-07-09  Roland McGrath  <roland@redhat.com>
+
+	* elf.h: Update from glibc.
+
+2007-04-22  Roland McGrath  <roland@redhat.com>
+
+	* elf.h: Update from glibc.
+
 2007-03-18  Roland McGrath  <roland@redhat.com>
 
 	* elf_begin.c (get_shnum): Fix test for e_shoff being out of bounds.
Index: libelf/elf.h
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/libelf/elf.h,v
retrieving revision 1.6
diff -u -r1.6 elf.h
--- libelf/elf.h	22 Aug 2007 17:11:08 -0000	1.6
+++ libelf/elf.h	27 Aug 2007 19:21:43 -0000
@@ -1,5 +1,5 @@
 /* This file defines standard ELF types, structures, and macros.
-   Copyright (C) 1995-2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+   Copyright (C) 1995-2003,2004,2005,2006,2007 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -329,8 +329,8 @@
 #define SHT_GROUP	  17		/* Section group */
 #define SHT_SYMTAB_SHNDX  18		/* Extended section indeces */
 #define	SHT_NUM		  19		/* Number of defined types.  */
-#define SHT_LOOS	  0x60000000	/* Start OS-specific */
-#define SHT_GNU_HASH	  0x6ffffff6	/* GNU style symbol hash table.  */
+#define SHT_LOOS	  0x60000000	/* Start OS-specific.  */
+#define SHT_GNU_HASH	  0x6ffffff6	/* GNU-style hash table.  */
 #define SHT_GNU_LIBLIST	  0x6ffffff7	/* Prelink library list */
 #define SHT_CHECKSUM	  0x6ffffff8	/* Checksum for DSO content.  */
 #define SHT_LOSUNW	  0x6ffffffa	/* Sun-specific low bound.  */
@@ -602,7 +602,8 @@
 #define NT_UTSNAME	15		/* Contains copy of utsname struct */
 #define NT_LWPSTATUS	16		/* Contains copy of lwpstatus struct */
 #define NT_LWPSINFO	17		/* Contains copy of lwpinfo struct */
-#define NT_PRFPXREG	20		/* Contains copy of fprxregset struct*/
+#define NT_PRFPXREG	20		/* Contains copy of fprxregset struct */
+#define NT_PRXFPREG	0x46e62b7f	/* Contains copy of user_fxsr_struct */
 
 /* Legal values for the note segment descriptor types for object files.  */
 
@@ -692,7 +693,7 @@
 #define DT_SYMINENT	0x6ffffdff	/* Entry size of syminfo */
 #define DT_VALRNGHI	0x6ffffdff
 #define DT_VALTAGIDX(tag)	(DT_VALRNGHI - (tag))	/* Reverse order! */
-#define DT_VALNUM 11
+#define DT_VALNUM 12
 
 /* DT_* entries which fall between DT_ADDRRNGHI & DT_ADDRRNGLO use the
    Dyn.d_un.d_ptr field of the Elf*_Dyn structure.
@@ -700,7 +701,7 @@
    If any adjustment is made to the ELF object after it has been
    built these entries will need to be adjusted.  */
 #define DT_ADDRRNGLO	0x6ffffe00
-#define DT_GNU_HASH	0x6ffffef5	/* Address of GNU symbol hash table */
+#define DT_GNU_HASH	0x6ffffef5	/* GNU-style hash table.  */
 #define DT_TLSDESC_PLT	0x6ffffef6
 #define DT_TLSDESC_GOT	0x6ffffef7
 #define DT_GNU_CONFLICT	0x6ffffef8	/* Start of conflict section */
@@ -1016,15 +1017,28 @@
    word 2: minor version of the ABI
    word 3: subminor version of the ABI
 */
-#define ELF_NOTE_ABI		1
+#define NT_GNU_ABI_TAG	1
+#define ELF_NOTE_ABI	NT_GNU_ABI_TAG /* Old name.  */
 
-/* Known OSes.  These value can appear in word 0 of an ELF_NOTE_ABI
-   note section entry.  */
+/* Known OSes.  These values can appear in word 0 of an
+   NT_GNU_ABI_TAG note section entry.  */
 #define ELF_NOTE_OS_LINUX	0
 #define ELF_NOTE_OS_GNU		1
 #define ELF_NOTE_OS_SOLARIS2	2
 #define ELF_NOTE_OS_FREEBSD	3
 
+/* Synthetic hwcap information.  The descriptor begins with two words:
+   word 0: number of entries
+   word 1: bitmask of enabled entries
+   Then follow variable-length entries, one byte followed by a
+   '\0'-terminated hwcap name string.  The byte gives the bit
+   number to test if enabled, (1U << bit) & bitmask.  */
+#define NT_GNU_HWCAP	2
+
+/* Build ID bits as generated by ld --build-id.
+   The descriptor consists of any nonzero number of bytes.  */
+#define NT_GNU_BUILD_ID	3
+
 
 /* Move records.  */
 typedef struct
@@ -1254,14 +1268,15 @@
 #define DT_SPARC_REGISTER 0x70000001
 #define DT_SPARC_NUM	2
 
-/* Bits present in AT_HWCAP, primarily for Sparc32.  */
+/* Bits present in AT_HWCAP on SPARC.  */
 
-#define HWCAP_SPARC_FLUSH	1	/* The cpu supports flush insn.  */
+#define HWCAP_SPARC_FLUSH	1	/* The CPU supports flush insn.  */
 #define HWCAP_SPARC_STBAR	2
 #define HWCAP_SPARC_SWAP	4
 #define HWCAP_SPARC_MULDIV	8
-#define HWCAP_SPARC_V9		16	/* The cpu is v9, so v8plus is ok.  */
+#define HWCAP_SPARC_V9		16	/* The CPU is v9, so v8plus is ok.  */
 #define HWCAP_SPARC_ULTRA3	32
+#define HWCAP_SPARC_BLKINIT	64	/* Sun4v with block-init/load-twin.  */
 
 /* MIPS R3000 specific definitions.  */
 
@@ -1510,8 +1525,9 @@
 #define R_MIPS_TLS_TPREL64	48	/* TP-relative offset, 64 bit */
 #define R_MIPS_TLS_TPREL_HI16	49	/* TP-relative offset, high 16 bits */
 #define R_MIPS_TLS_TPREL_LO16	50	/* TP-relative offset, low 16 bits */
+#define R_MIPS_GLOB_DAT		51
 /* Keep this the last entry.  */
-#define R_MIPS_NUM		51
+#define R_MIPS_NUM		52
 
 /* Legal values for p_type field of Elf32_Phdr.  */
 
Index: libelf/elf32_updatefile.c
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/libelf/elf32_updatefile.c,v
retrieving revision 1.5
diff -u -r1.5 elf32_updatefile.c
--- libelf/elf32_updatefile.c	22 Aug 2007 17:11:08 -0000	1.5
+++ libelf/elf32_updatefile.c	27 Aug 2007 19:21:43 -0000
@@ -1,5 +1,5 @@
 /* Write changed data structures.
-   Copyright (C) 2000, 2001, 2002, 2004, 2005, 2006 Red Hat, Inc.
+   Copyright (C) 2000, 2001, 2002, 2004, 2005, 2006, 2007 Red Hat, Inc.
    This file is part of Red Hat elfutils.
    Written by Ulrich Drepper <drepper@redhat.com>, 2000.
 
@@ -85,6 +85,14 @@
       > (*scnb)->shdr.ELFW(e,LIBELFBITS)->sh_offset)
     return 1;
 
+  if ((*scna)->shdr.ELFW(e,LIBELFBITS)->sh_size
+      < (*scnb)->shdr.ELFW(e,LIBELFBITS)->sh_size)
+    return -1;
+
+  if ((*scna)->shdr.ELFW(e,LIBELFBITS)->sh_size
+      > (*scnb)->shdr.ELFW(e,LIBELFBITS)->sh_size)
+    return 1;
+
   if ((*scna)->index < (*scnb)->index)
     return -1;
 
@@ -97,7 +105,10 @@
 
 /* Insert the sections in the list into the provided array and sort
    them according to their start offsets.  For sections with equal
-   start offsets the section index is used.  */
+   start offsets, the size is used; for sections with equal start
+   offsets and sizes, the section index is used.  Sorting by size
+   ensures that zero-length sections are processed first, which
+   is what we want since they do not advance our file writing position.  */
 static void
 sort_sections (Elf_Scn **scns, Elf_ScnList *list)
 {
@@ -691,7 +702,7 @@
 		    sizeof (ElfW2(LIBELFBITS,Shdr)));
 
 	  shdr_flags |= scn->shdr_flags;
-	  scn->shdr_flags  &= ~ELF_F_DIRTY;
+	  scn->shdr_flags &= ~ELF_F_DIRTY;
 	}
 
       /* Fill the gap between last section and section header table if
Index: m4/ChangeLog
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/m4/ChangeLog,v
retrieving revision 1.4
diff -u -r1.4 ChangeLog
--- m4/ChangeLog	22 Aug 2007 17:11:08 -0000	1.4
+++ m4/ChangeLog	27 Aug 2007 19:21:43 -0000
@@ -1,3 +1,11 @@
+2007-06-05  Ulrich Drepper  <drepper@redhat.com>
+
+	* gettext.m4: Update from gettext 0.16.1.
+	* iconv.m4: Likewise.
+	* progtest.m4: Likewise.
+	* nls.m4: New file.
+	* po.m4: New file.
+
 2005-02-15  Ulrich Drepper  <drepper@redhat.com>
 
 	* Makefile.am (EXTRA_DIST): Remove glibc21.m4, intdiv0.m4,
Index: m4/gettext.m4
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/m4/gettext.m4,v
retrieving revision 1.4
diff -u -r1.4 gettext.m4
--- m4/gettext.m4	22 Aug 2007 17:11:08 -0000	1.4
+++ m4/gettext.m4	27 Aug 2007 19:21:43 -0000
@@ -1,10 +1,8 @@
-# gettext.m4 serial 16 (gettext-0.11.4)
-dnl Copyright (C) 1995-2002 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License.  As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
+# gettext.m4 serial 59 (gettext-0.16.1)
+dnl Copyright (C) 1995-2006 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
 dnl
 dnl This file can can be used in projects which are not available under
 dnl the GNU General Public License or the GNU Library General Public
@@ -17,7 +15,7 @@
 
 dnl Authors:
 dnl   Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
-dnl   Bruno Haible <haible@clisp.cons.org>, 2000-2002.
+dnl   Bruno Haible <haible@clisp.cons.org>, 2000-2006.
 
 dnl Macro to add for using GNU gettext.
 
@@ -65,8 +63,13 @@
   ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], ,
     [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT
 ])])])])
-  define(gt_included_intl, ifelse([$1], [external], [no], [yes]))
-  define(gt_libtool_suffix_prefix, ifelse([$1], [use-libtool], [l], []))
+  define([gt_included_intl],
+    ifelse([$1], [external],
+      ifdef([AM_GNU_GETTEXT_][INTL_SUBDIR], [yes], [no]),
+      [yes]))
+  define([gt_libtool_suffix_prefix], ifelse([$1], [use-libtool], [l], []))
+  gt_NEEDS_INIT
+  AM_GNU_GETTEXT_NEED([$2])
 
   AC_REQUIRE([AM_PO_SUBDIRS])dnl
   ifelse(gt_included_intl, yes, [
@@ -80,7 +83,7 @@
   dnl Sometimes libintl requires libiconv, so first search for libiconv.
   dnl Ideally we would do this search only after the
   dnl      if test "$USE_NLS" = "yes"; then
-  dnl        if test "$gt_cv_func_gnugettext_libc" != "yes"; then
+  dnl        if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then
   dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT
   dnl the configure script would need to contain the same shell code
   dnl again, outside any 'if'. There are two solutions:
@@ -92,13 +95,11 @@
     AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
   ])
 
-  AC_MSG_CHECKING([whether NLS is requested])
-  dnl Default is enabled NLS
-  AC_ARG_ENABLE(nls,
-    [  --disable-nls           do not use Native Language Support],
-    USE_NLS=$enableval, USE_NLS=yes)
-  AC_MSG_RESULT($USE_NLS)
-  AC_SUBST(USE_NLS)
+  dnl Sometimes, on MacOS X, libintl requires linking with CoreFoundation.
+  gt_INTL_MACOSX
+
+  dnl Set USE_NLS.
+  AC_REQUIRE([AM_NLS])
 
   ifelse(gt_included_intl, yes, [
     BUILD_INCLUDED_LIBINTL=no
@@ -108,6 +109,15 @@
   LTLIBINTL=
   POSUB=
 
+  dnl Add a version number to the cache macros.
+  case " $gt_needs " in
+    *" need-formatstring-macros "*) gt_api_version=3 ;;
+    *" need-ngettext "*) gt_api_version=2 ;;
+    *) gt_api_version=1 ;;
+  esac
+  gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc"
+  gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl"
+
   dnl If we use NLS figure out what method
   if test "$USE_NLS" = "yes"; then
     gt_use_preinstalled_gnugettext=no
@@ -126,28 +136,35 @@
         dnl to use.  If GNU gettext is available we use this.  Else we have
         dnl to fall back to GNU NLS library.
 
-        dnl Add a version number to the cache macros.
-        define([gt_api_version], ifelse([$2], [need-formatstring-macros], 3, ifelse([$2], [need-ngettext], 2, 1)))
-        define([gt_cv_func_gnugettext_libc], [gt_cv_func_gnugettext]gt_api_version[_libc])
-        define([gt_cv_func_gnugettext_libintl], [gt_cv_func_gnugettext]gt_api_version[_libintl])
-
-        AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc,
-         [AC_TRY_LINK([#include <libintl.h>
-]ifelse([$2], [need-formatstring-macros],
-[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
+        if test $gt_api_version -ge 3; then
+          gt_revision_test_code='
+#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
 #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
 #endif
 changequote(,)dnl
 typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
 changequote([,])dnl
-], [])[extern int _nl_msg_cat_cntr;
+'
+        else
+          gt_revision_test_code=
+        fi
+        if test $gt_api_version -ge 2; then
+          gt_expression_test_code=' + * ngettext ("", "", 0)'
+        else
+          gt_expression_test_code=
+        fi
+
+        AC_CACHE_CHECK([for GNU gettext in libc], [$gt_func_gnugettext_libc],
+         [AC_TRY_LINK([#include <libintl.h>
+$gt_revision_test_code
+extern int _nl_msg_cat_cntr;
 extern int *_nl_domain_bindings;],
             [bindtextdomain ("", "");
-return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_domain_bindings],
-            gt_cv_func_gnugettext_libc=yes,
-            gt_cv_func_gnugettext_libc=no)])
+return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings],
+            [eval "$gt_func_gnugettext_libc=yes"],
+            [eval "$gt_func_gnugettext_libc=no"])])
 
-        if test "$gt_cv_func_gnugettext_libc" != "yes"; then
+        if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then
           dnl Sometimes libintl requires libiconv, so first search for libiconv.
           ifelse(gt_included_intl, yes, , [
             AM_ICONV_LINK
@@ -158,52 +175,40 @@
           dnl even if libiconv doesn't exist.
           AC_LIB_LINKFLAGS_BODY([intl])
           AC_CACHE_CHECK([for GNU gettext in libintl],
-            gt_cv_func_gnugettext_libintl,
+            [$gt_func_gnugettext_libintl],
            [gt_save_CPPFLAGS="$CPPFLAGS"
             CPPFLAGS="$CPPFLAGS $INCINTL"
             gt_save_LIBS="$LIBS"
             LIBS="$LIBS $LIBINTL"
             dnl Now see whether libintl exists and does not depend on libiconv.
             AC_TRY_LINK([#include <libintl.h>
-]ifelse([$2], [need-formatstring-macros],
-[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
-#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
-#endif
-changequote(,)dnl
-typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
-changequote([,])dnl
-], [])[extern int _nl_msg_cat_cntr;
+$gt_revision_test_code
+extern int _nl_msg_cat_cntr;
 extern
 #ifdef __cplusplus
 "C"
 #endif
-const char *_nl_expand_alias ();],
+const char *_nl_expand_alias (const char *);],
               [bindtextdomain ("", "");
-return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias (0)],
-              gt_cv_func_gnugettext_libintl=yes,
-              gt_cv_func_gnugettext_libintl=no)
+return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")],
+              [eval "$gt_func_gnugettext_libintl=yes"],
+              [eval "$gt_func_gnugettext_libintl=no"])
             dnl Now see whether libintl exists and depends on libiconv.
-            if test "$gt_cv_func_gnugettext_libintl" != yes && test -n "$LIBICONV"; then
+            if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then
               LIBS="$LIBS $LIBICONV"
               AC_TRY_LINK([#include <libintl.h>
-]ifelse([$2], [need-formatstring-macros],
-[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
-#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
-#endif
-changequote(,)dnl
-typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
-changequote([,])dnl
-], [])[extern int _nl_msg_cat_cntr;
+$gt_revision_test_code
+extern int _nl_msg_cat_cntr;
 extern
 #ifdef __cplusplus
 "C"
 #endif
-const char *_nl_expand_alias ();],
+const char *_nl_expand_alias (const char *);],
                 [bindtextdomain ("", "");
-return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias (0)],
+return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")],
                [LIBINTL="$LIBINTL $LIBICONV"
                 LTLIBINTL="$LTLIBINTL $LTLIBICONV"
-                gt_cv_func_gnugettext_libintl=yes
+                eval "$gt_func_gnugettext_libintl=yes"
                ])
             fi
             CPPFLAGS="$gt_save_CPPFLAGS"
@@ -214,9 +219,10 @@
         dnl use it.  But if this macro is used in GNU gettext, and GNU
         dnl gettext is already preinstalled in libintl, we update this
         dnl libintl.  (Cf. the install rule in intl/Makefile.in.)
-        if test "$gt_cv_func_gnugettext_libc" = "yes" \
-           || { test "$gt_cv_func_gnugettext_libintl" = "yes" \
-                && test "$PACKAGE" != gettext; }; then
+        if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \
+           || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \
+                && test "$PACKAGE" != gettext-runtime \
+                && test "$PACKAGE" != gettext-tools; }; then
           gt_use_preinstalled_gnugettext=yes
         else
           dnl Reset the values set by searching for libintl.
@@ -235,14 +241,14 @@
 
       if test "$nls_cv_use_gnu_gettext" = "yes"; then
         dnl Mark actions used to generate GNU NLS library.
-        INTLOBJS="\$(GETTOBJS)"
         BUILD_INCLUDED_LIBINTL=yes
         USE_INCLUDED_LIBINTL=yes
-        LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV"
-        LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV"
+        LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV $LIBTHREAD"
+        LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV $LTLIBTHREAD"
         LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
       fi
 
+      CATOBJEXT=
       if test "$gt_use_preinstalled_gnugettext" = "yes" \
          || test "$nls_cv_use_gnu_gettext" = "yes"; then
         dnl Mark actions to use GNU gettext tools.
@@ -250,6 +256,15 @@
       fi
     ])
 
+    if test -n "$INTL_MACOSX_LIBS"; then
+      if test "$gt_use_preinstalled_gnugettext" = "yes" \
+         || test "$nls_cv_use_gnu_gettext" = "yes"; then
+        dnl Some extra flags are needed during linking.
+        LIBINTL="$LIBINTL $INTL_MACOSX_LIBS"
+        LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS"
+      fi
+    fi
+
     if test "$gt_use_preinstalled_gnugettext" = "yes" \
        || test "$nls_cv_use_gnu_gettext" = "yes"; then
       AC_DEFINE(ENABLE_NLS, 1,
@@ -260,10 +275,26 @@
     fi
   fi
 
+  AC_MSG_CHECKING([whether to use NLS])
+  AC_MSG_RESULT([$USE_NLS])
+  if test "$USE_NLS" = "yes"; then
+    AC_MSG_CHECKING([where the gettext function comes from])
+    if test "$gt_use_preinstalled_gnugettext" = "yes"; then
+      if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then
+        gt_source="external libintl"
+      else
+        gt_source="libc"
+      fi
+    else
+      gt_source="included intl directory"
+    fi
+    AC_MSG_RESULT([$gt_source])
+  fi
+
   if test "$USE_NLS" = "yes"; then
 
     if test "$gt_use_preinstalled_gnugettext" = "yes"; then
-      if test "$gt_cv_func_gnugettext_libintl" = "yes"; then
+      if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then
         AC_MSG_CHECKING([how to link with libintl])
         AC_MSG_RESULT([$LIBINTL])
         AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL])
@@ -283,7 +314,7 @@
   ifelse(gt_included_intl, yes, [
     dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL
     dnl to 'yes' because some of the testsuite requires it.
-    if test "$PACKAGE" = gettext; then
+    if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then
       BUILD_INCLUDED_LIBINTL=yes
     fi
 
@@ -291,7 +322,6 @@
     AC_SUBST(BUILD_INCLUDED_LIBINTL)
     AC_SUBST(USE_INCLUDED_LIBINTL)
     AC_SUBST(CATOBJEXT)
-    AC_SUBST(INTLOBJS)
 
     dnl For backward compatibility. Some configure.ins may be using this.
     nls_cv_header_intl=
@@ -309,6 +339,13 @@
     GENCAT=gencat
     AC_SUBST(GENCAT)
 
+    dnl For backward compatibility. Some Makefiles may be using this.
+    INTLOBJS=
+    if test "$USE_INCLUDED_LIBINTL" = yes; then
+      INTLOBJS="\$(GETTOBJS)"
+    fi
+    AC_SUBST(INTLOBJS)
+
     dnl Enable libtool support if the surrounding package wishes it.
     INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix
     AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX)
@@ -325,261 +362,56 @@
 ])
 
 
-dnl Checks for all prerequisites of the po subdirectory,
-dnl except for USE_NLS.
-AC_DEFUN([AM_PO_SUBDIRS],
+dnl Checks for special options needed on MacOS X.
+dnl Defines INTL_MACOSX_LIBS.
+AC_DEFUN([gt_INTL_MACOSX],
 [
-  AC_REQUIRE([AC_PROG_MAKE_SET])dnl
-  AC_REQUIRE([AC_PROG_INSTALL])dnl
-  AC_REQUIRE([AM_MKINSTALLDIRS])dnl
-
-  dnl Perform the following tests also if --disable-nls has been given,
-  dnl because they are needed for "make dist" to work.
-
-  dnl Search for GNU msgfmt in the PATH.
-  dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions.
-  dnl The second test excludes FreeBSD msgfmt.
-  AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
-    [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 &&
-     (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
-    :)
-  AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
-
-  dnl Search for GNU xgettext 0.11 or newer in the PATH.
-  dnl The first test excludes Solaris xgettext and early GNU xgettext versions.
-  dnl The second test excludes FreeBSD xgettext.
-  AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
-    [$ac_dir/$ac_word --omit-header --copyright-holder= /dev/null >/dev/null 2>&1 &&
-     (if $ac_dir/$ac_word --omit-header --copyright-holder= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
-    :)
-  dnl Remove leftover from FreeBSD xgettext call.
-  rm -f messages.po
-
-  dnl Search for GNU msgmerge 0.11 or newer in the PATH.
-  AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge,
-    [$ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1], :)
-
-  dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
-  dnl Test whether we really found GNU msgfmt.
-  if test "$GMSGFMT" != ":"; then
-    dnl If it is no GNU msgfmt we define it as : so that the
-    dnl Makefiles still can work.
-    if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 &&
-       (if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
-      : ;
-    else
-      GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'`
-      AC_MSG_RESULT(
-        [found $GMSGFMT program is not GNU msgfmt; ignore it])
-      GMSGFMT=":"
-    fi
+  dnl Check for API introduced in MacOS X 10.2.
+  AC_CACHE_CHECK([for CFPreferencesCopyAppValue],
+    gt_cv_func_CFPreferencesCopyAppValue,
+    [gt_save_LIBS="$LIBS"
+     LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
+     AC_TRY_LINK([#include <CoreFoundation/CFPreferences.h>],
+       [CFPreferencesCopyAppValue(NULL, NULL)],
+       [gt_cv_func_CFPreferencesCopyAppValue=yes],
+       [gt_cv_func_CFPreferencesCopyAppValue=no])
+     LIBS="$gt_save_LIBS"])
+  if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then
+    AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], 1,
+      [Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in the CoreFoundation framework.])
   fi
-
-  dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
-  dnl Test whether we really found GNU xgettext.
-  if test "$XGETTEXT" != ":"; then
-    dnl If it is no GNU xgettext we define it as : so that the
-    dnl Makefiles still can work.
-    if $XGETTEXT --omit-header --copyright-holder= /dev/null >/dev/null 2>&1 &&
-       (if $XGETTEXT --omit-header --copyright-holder= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
-      : ;
-    else
-      AC_MSG_RESULT(
-        [found xgettext program is not GNU xgettext; ignore it])
-      XGETTEXT=":"
-    fi
-    dnl Remove leftover from FreeBSD xgettext call.
-    rm -f messages.po
+  dnl Check for API introduced in MacOS X 10.3.
+  AC_CACHE_CHECK([for CFLocaleCopyCurrent], gt_cv_func_CFLocaleCopyCurrent,
+    [gt_save_LIBS="$LIBS"
+     LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
+     AC_TRY_LINK([#include <CoreFoundation/CFLocale.h>], [CFLocaleCopyCurrent();],
+       [gt_cv_func_CFLocaleCopyCurrent=yes],
+       [gt_cv_func_CFLocaleCopyCurrent=no])
+     LIBS="$gt_save_LIBS"])
+  if test $gt_cv_func_CFLocaleCopyCurrent = yes; then
+    AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], 1,
+      [Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the CoreFoundation framework.])
   fi
-
-  AC_OUTPUT_COMMANDS([
-    for ac_file in $CONFIG_FILES; do
-      # Support "outfile[:infile[:infile...]]"
-      case "$ac_file" in
-        *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
-      esac
-      # PO directories have a Makefile.in generated from Makefile.in.in.
-      case "$ac_file" in */Makefile.in)
-        # Adjust a relative srcdir.
-        ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
-        ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
-        ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
-        # In autoconf-2.13 it is called $ac_given_srcdir.
-        # In autoconf-2.50 it is called $srcdir.
-        test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
-        case "$ac_given_srcdir" in
-          .)  top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
-          /*) top_srcdir="$ac_given_srcdir" ;;
-          *)  top_srcdir="$ac_dots$ac_given_srcdir" ;;
-        esac
-        if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
-          rm -f "$ac_dir/POTFILES"
-          test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
-          cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ 	]*\$/d" -e "s,.*,     $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES"
-          # ALL_LINGUAS, POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES depend
-          # on $ac_dir but don't depend on user-specified configuration
-          # parameters.
-          if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
-            # The LINGUAS file contains the set of available languages.
-            if test -n "$ALL_LINGUAS"; then
-              test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
-            fi
-            ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"`
-            # Hide the ALL_LINGUAS assigment from automake.
-            eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
-          fi
-          case "$ac_given_srcdir" in
-            .) srcdirpre= ;;
-            *) srcdirpre='$(srcdir)/' ;;
-          esac
-          POFILES=
-          GMOFILES=
-          UPDATEPOFILES=
-          DUMMYPOFILES=
-          for lang in $ALL_LINGUAS; do
-            POFILES="$POFILES $srcdirpre$lang.po"
-            GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
-            UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
-            DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
-          done
-          # CATALOGS depends on both $ac_dir and the user's LINGUAS
-          # environment variable.
-          INST_LINGUAS=
-          if test -n "$ALL_LINGUAS"; then
-            for presentlang in $ALL_LINGUAS; do
-              useit=no
-              if test "%UNSET%" != "$LINGUAS"; then
-                desiredlanguages="$LINGUAS"
-              else
-                desiredlanguages="$ALL_LINGUAS"
-              fi
-              for desiredlang in $desiredlanguages; do
-                # Use the presentlang catalog if desiredlang is
-                #   a. equal to presentlang, or
-                #   b. a variant of presentlang (because in this case,
-                #      presentlang can be used as a fallback for messages
-                #      which are not translated in the desiredlang catalog).
-                case "$desiredlang" in
-                  "$presentlang"*) useit=yes;;
-                esac
-              done
-              if test $useit = yes; then
-                INST_LINGUAS="$INST_LINGUAS $presentlang"
-              fi
-            done
-          fi
-          CATALOGS=
-          if test -n "$INST_LINGUAS"; then
-            for lang in $INST_LINGUAS; do
-              CATALOGS="$CATALOGS $lang.gmo"
-            done
-          fi
-          test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile"
-          sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile"
-          for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do
-            if test -f "$f"; then
-              case "$f" in
-                *.orig | *.bak | *~) ;;
-                *) cat "$f" >> "$ac_dir/Makefile" ;;
-              esac
-            fi
-          done
-        fi
-        ;;
-      esac
-    done],
-   [# Capture the value of obsolete $ALL_LINGUAS because we need it to compute
-    # POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES, CATALOGS. But hide it
-    # from automake.
-    eval 'ALL_LINGUAS''="$ALL_LINGUAS"'
-    # Capture the value of LINGUAS because we need it to compute CATALOGS.
-    LINGUAS="${LINGUAS-%UNSET%}"
-   ])
+  INTL_MACOSX_LIBS=
+  if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then
+    INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation"
+  fi
+  AC_SUBST([INTL_MACOSX_LIBS])
 ])
 
 
-dnl Checks for all prerequisites of the intl subdirectory,
-dnl except for INTL_LIBTOOL_SUFFIX_PREFIX (and possibly LIBTOOL), INTLOBJS,
-dnl            USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL.
-AC_DEFUN([AM_INTL_SUBDIR],
+dnl gt_NEEDS_INIT ensures that the gt_needs variable is initialized.
+m4_define([gt_NEEDS_INIT],
 [
-  AC_REQUIRE([AC_PROG_INSTALL])dnl
-  AC_REQUIRE([AM_MKINSTALLDIRS])dnl
-  AC_REQUIRE([AC_PROG_CC])dnl
-  AC_REQUIRE([AC_CANONICAL_HOST])dnl
-  AC_REQUIRE([AC_PROG_RANLIB])dnl
-  AC_REQUIRE([AC_ISC_POSIX])dnl
-  AC_REQUIRE([AC_HEADER_STDC])dnl
-  AC_REQUIRE([AC_C_CONST])dnl
-  AC_REQUIRE([AC_C_INLINE])dnl
-  AC_REQUIRE([AC_TYPE_OFF_T])dnl
-  AC_REQUIRE([AC_TYPE_SIZE_T])dnl
-  AC_REQUIRE([AC_FUNC_ALLOCA])dnl
-  AC_REQUIRE([AC_FUNC_MMAP])dnl
-  AC_REQUIRE([jm_GLIBC21])dnl
-  AC_REQUIRE([gt_INTDIV0])dnl
-  AC_REQUIRE([jm_AC_TYPE_UINTMAX_T])dnl
-  AC_REQUIRE([gt_HEADER_INTTYPES_H])dnl
-  AC_REQUIRE([gt_INTTYPES_PRI])dnl
-
-  AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \
-stdlib.h string.h unistd.h sys/param.h])
-  AC_CHECK_FUNCS([feof_unlocked fgets_unlocked getc_unlocked getcwd getegid \
-geteuid getgid getuid mempcpy munmap putenv setenv setlocale stpcpy \
-strcasecmp strdup strtoul tsearch __argz_count __argz_stringify __argz_next])
-
-  AM_ICONV
-  AM_LANGINFO_CODESET
-  if test $ac_cv_header_locale_h = yes; then
-    AM_LC_MESSAGES
-  fi
-
-  dnl intl/plural.c is generated from intl/plural.y. It requires bison,
-  dnl because plural.y uses bison specific features. It requires at least
-  dnl bison-1.26 because earlier versions generate a plural.c that doesn't
-  dnl compile.
-  dnl bison is only needed for the maintainer (who touches plural.y). But in
-  dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put
-  dnl the rule in general Makefile. Now, some people carelessly touch the
-  dnl files or have a broken "make" program, hence the plural.c rule will
-  dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not
-  dnl present or too old.
-  AC_CHECK_PROGS([INTLBISON], [bison])
-  if test -z "$INTLBISON"; then
-    ac_verc_fail=yes
-  else
-    dnl Found it, now check the version.
-    AC_MSG_CHECKING([version of bison])
-changequote(<<,>>)dnl
-    ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
-    case $ac_prog_version in
-      '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
-      1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*)
-changequote([,])dnl
-         ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
-      *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
-    esac
-    AC_MSG_RESULT([$ac_prog_version])
-  fi
-  if test $ac_verc_fail = yes; then
-    INTLBISON=:
-  fi
+  m4_divert_text([DEFAULTS], [gt_needs=])
+  m4_define([gt_NEEDS_INIT], [])
 ])
 
 
-AC_DEFUN([AM_MKINSTALLDIRS],
+dnl Usage: AM_GNU_GETTEXT_NEED([NEEDSYMBOL])
+AC_DEFUN([AM_GNU_GETTEXT_NEED],
 [
-  dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
-  dnl find the mkinstalldirs script in another subdir but $(top_srcdir).
-  dnl Try to locate is.
-  MKINSTALLDIRS=
-  if test -n "$ac_aux_dir"; then
-    MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
-  fi
-  if test -z "$MKINSTALLDIRS"; then
-    MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
-  fi
-  AC_SUBST(MKINSTALLDIRS)
+  m4_divert_text([INIT_PREPARE], [gt_needs="$gt_needs $1"])
 ])
 
 
Index: m4/iconv.m4
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/m4/iconv.m4,v
retrieving revision 1.4
diff -u -r1.4 iconv.m4
--- m4/iconv.m4	22 Aug 2007 17:11:08 -0000	1.4
+++ m4/iconv.m4	27 Aug 2007 19:21:43 -0000
@@ -1,10 +1,8 @@
 # iconv.m4 serial AM4 (gettext-0.11.3)
 dnl Copyright (C) 2000-2002 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License.  As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
 
 dnl From Bruno Haible.
 
Index: m4/progtest.m4
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/m4/progtest.m4,v
retrieving revision 1.4
diff -u -r1.4 progtest.m4
--- m4/progtest.m4	22 Aug 2007 17:11:08 -0000	1.4
+++ m4/progtest.m4	27 Aug 2007 19:21:43 -0000
@@ -1,10 +1,8 @@
-# progtest.m4 serial 2 (gettext-0.10.40)
-dnl Copyright (C) 1996-2002 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License.  As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
+# progtest.m4 serial 4 (gettext-0.14.2)
+dnl Copyright (C) 1996-2003, 2005 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
 dnl
 dnl This file can can be used in projects which are not available under
 dnl the GNU General Public License or the GNU Library General Public
@@ -18,36 +16,71 @@
 dnl Authors:
 dnl   Ulrich Drepper <drepper@cygnus.com>, 1996.
 
+AC_PREREQ(2.50)
+
 # Search path for a program which passes the given test.
 
 dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
 dnl   TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
 AC_DEFUN([AM_PATH_PROG_WITH_TEST],
-[# Extract the first word of "$2", so it can be a program name with args.
+[
+# Prepare PATH_SEPARATOR.
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  echo "#! /bin/sh" >conf$$.sh
+  echo  "exit 0"   >>conf$$.sh
+  chmod +x conf$$.sh
+  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+    PATH_SEPARATOR=';'
+  else
+    PATH_SEPARATOR=:
+  fi
+  rm -f conf$$.sh
+fi
+
+# Find out how to test for executable files. Don't use a zero-byte file,
+# as systems may use methods other than mode bits to determine executability.
+cat >conf$$.file <<_ASEOF
+#! /bin/sh
+exit 0
+_ASEOF
+chmod +x conf$$.file
+if test -x conf$$.file >/dev/null 2>&1; then
+  ac_executable_p="test -x"
+else
+  ac_executable_p="test -f"
+fi
+rm -f conf$$.file
+
+# Extract the first word of "$2", so it can be a program name with args.
 set dummy $2; ac_word=[$]2
 AC_MSG_CHECKING([for $ac_word])
 AC_CACHE_VAL(ac_cv_path_$1,
 [case "[$]$1" in
-  /*)
-  ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
-  ;;
+  [[\\/]]* | ?:[[\\/]]*)
+    ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
+    ;;
   *)
-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
-  for ac_dir in ifelse([$5], , $PATH, [$5]); do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      if [$3]; then
-	ac_cv_path_$1="$ac_dir/$ac_word"
-	break
-      fi
-    fi
-  done
-  IFS="$ac_save_ifs"
+    ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
+    for ac_dir in ifelse([$5], , $PATH, [$5]); do
+      IFS="$ac_save_IFS"
+      test -z "$ac_dir" && ac_dir=.
+      for ac_exec_ext in '' $ac_executable_extensions; do
+        if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
+          echo "$as_me: trying $ac_dir/$ac_word..." >&AS_MESSAGE_LOG_FD
+          if [$3]; then
+            ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext"
+            break 2
+          fi
+        fi
+      done
+    done
+    IFS="$ac_save_IFS"
 dnl If no 4th arg is given, leave the cache variable unset,
 dnl so AC_PATH_PROGS will keep looking.
 ifelse([$4], , , [  test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
 ])dnl
-  ;;
+    ;;
 esac])dnl
 $1="$ac_cv_path_$1"
 if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then
Index: po/ChangeLog
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/po/ChangeLog,v
retrieving revision 1.5
diff -u -r1.5 ChangeLog
--- po/ChangeLog	22 Aug 2007 17:11:08 -0000	1.5
+++ po/ChangeLog	27 Aug 2007 19:21:43 -0000
@@ -1,3 +1,13 @@
+2007-06-05  Ulrich Drepper  <drepper@redhat.com>
+
+	* Makefile.in.in: Update from gettext 0.16.1.
+	* Rules-quot: Likewise.
+	* Makevars: Add more XGGETEXT_OPTIONS.
+
+	* remove-potcdata.sin: New file.
+
+	* POTFILES.in: Also include messages from libelf.
+
 2007-04-18  Ulrich Drepper  <drepper@redhat.com>
 
 	* Makefile.in.in: Remove MKINSTALLDIRS.
Index: po/Makefile.in.in
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/po/Makefile.in.in,v
retrieving revision 1.5
diff -u -r1.5 Makefile.in.in
--- po/Makefile.in.in	22 Aug 2007 17:11:08 -0000	1.5
+++ po/Makefile.in.in	27 Aug 2007 19:21:43 -0000
@@ -1,5 +1,5 @@
 # Makefile for PO directory in any package using GNU gettext.
-# Copyright (C) 1995-1997, 2000-2002 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
+# Copyright (C) 1995-1997, 2000-2006 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
 #
 # This file can be copied and used freely without restrictions.  It can
 # be used in projects which are not available under the GNU General Public
@@ -7,9 +7,12 @@
 # functionality.
 # Please note that the actual code of GNU gettext is covered by the GNU
 # General Public License and is *not* in the public domain.
+#
+# Origin: gettext-0.16
 
 PACKAGE = @PACKAGE@
 VERSION = @VERSION@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 
 SHELL = /bin/sh
 @SET_MAKE@
@@ -20,18 +23,38 @@
 
 prefix = @prefix@
 exec_prefix = @exec_prefix@
+datarootdir = @datarootdir@
 datadir = @datadir@
-localedir = $(datadir)/locale
+localedir = @localedir@
 gettextsrcdir = $(datadir)/gettext/po
-top_builddir = ..
 
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
-mkinstalldirs = mkdir -p
 
-GMSGFMT = @GMSGFMT@
-MSGFMT = @MSGFMT@
-XGETTEXT = @XGETTEXT@
+# We use $(mkdir_p).
+# In automake <= 1.9.x, $(mkdir_p) is defined either as "mkdir -p --" or as
+# "$(mkinstalldirs)" or as "$(install_sh) -d". For these automake versions,
+# @install_sh@ does not start with $(SHELL), so we add it.
+# In automake >= 1.10, @mkdir_p@ is derived from ${MKDIR_P}, which is defined
+# either as "/path/to/mkdir -p" or ".../install-sh -c -d". For these automake
+# versions, $(mkinstalldirs) and $(install_sh) are unused.
+mkinstalldirs = $(SHELL) @install_sh@ -d
+install_sh = $(SHELL) @install_sh@
+MKDIR_P = @MKDIR_P@
+mkdir_p = @mkdir_p@
+
+GMSGFMT_ = @GMSGFMT@
+GMSGFMT_no = @GMSGFMT@
+GMSGFMT_yes = @GMSGFMT_015@
+GMSGFMT = $(GMSGFMT_$(USE_MSGCTXT))
+MSGFMT_ = @MSGFMT@
+MSGFMT_no = @MSGFMT@
+MSGFMT_yes = @MSGFMT_015@
+MSGFMT = $(MSGFMT_$(USE_MSGCTXT))
+XGETTEXT_ = @XGETTEXT@
+XGETTEXT_no = @XGETTEXT@
+XGETTEXT_yes = @XGETTEXT_015@
+XGETTEXT = $(XGETTEXT_$(USE_MSGCTXT))
 MSGMERGE = msgmerge
 MSGMERGE_UPDATE = @MSGMERGE@ --update
 MSGINIT = msginit
@@ -42,9 +65,9 @@
 GMOFILES = @GMOFILES@
 UPDATEPOFILES = @UPDATEPOFILES@
 DUMMYPOFILES = @DUMMYPOFILES@
-DISTFILES.common = Makefile.in.in Makevars \
+DISTFILES.common = Makefile.in.in remove-potcdate.sin \
 $(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3)
-DISTFILES = $(DISTFILES.common) POTFILES.in $(DOMAIN).pot \
+DISTFILES = $(DISTFILES.common) Makevars POTFILES.in \
 $(POFILES) $(GMOFILES) \
 $(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3)
 
@@ -54,70 +77,127 @@
 
 # Makevars gets inserted here. (Don't remove this line!)
 
-XGETTEXT_OPTIONS += --flag=error:3:c-format --flag=ERROR:1:c-format
-
 .SUFFIXES:
-.SUFFIXES: .po .gmo .mo .nop .po-update
+.SUFFIXES: .po .gmo .mo .sed .sin .nop .po-create .po-update
 
 .po.mo:
-	$(MSGFMT) -c -o $@ $<
+	@echo "$(MSGFMT) -c -o $@ $<"; \
+	$(MSGFMT) -c -o t-$@ $< && mv t-$@ $@
 
 .po.gmo:
 	@lang=`echo $* | sed -e 's,.*/,,'`; \
 	test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
 	echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o $${lang}.gmo $${lang}.po"; \
-	cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o $${lang}.gmo $${lang}.po
+	cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo
+
+.sin.sed:
+	sed -e '/^#/d' $< > t-$@
+	mv t-$@ $@
 
 
 all: all-@USE_NLS@
 
-all-yes: $(CATALOGS)
+all-yes: stamp-po
 all-no:
 
+# $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no
+# internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because
+# we don't want to bother translators with empty POT files). We assume that
+# LINGUAS is empty in this case, i.e. $(POFILES) and $(GMOFILES) are empty.
+# In this case, stamp-po is a nop (i.e. a phony target).
+
+# stamp-po is a timestamp denoting the last time at which the CATALOGS have
+# been loosely updated. Its purpose is that when a developer or translator
+# checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS,
+# "make" will update the $(DOMAIN).pot and the $(CATALOGS), but subsequent
+# invocations of "make" will do nothing. This timestamp would not be necessary
+# if updating the $(CATALOGS) would always touch them; however, the rule for
+# $(POFILES) has been designed to not touch files that don't need to be
+# changed.
+stamp-po: $(srcdir)/$(DOMAIN).pot
+	test ! -f $(srcdir)/$(DOMAIN).pot || \
+	  test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES)
+	@test ! -f $(srcdir)/$(DOMAIN).pot || { \
+	  echo "touch stamp-po" && \
+	  echo timestamp > stamp-poT && \
+	  mv stamp-poT stamp-po; \
+	}
+
 # Note: Target 'all' must not depend on target '$(DOMAIN).pot-update',
 # otherwise packages like GCC can not be built if only parts of the source
 # have been downloaded.
 
-$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in
+# This target rebuilds $(DOMAIN).pot; it is an expensive operation.
+# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed.
+$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed
+	if test -n '$(MSGID_BUGS_ADDRESS)' || test '$(PACKAGE_BUGREPORT)' = '@'PACKAGE_BUGREPORT'@'; then \
+	  msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \
+	else \
+	  msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \
+	fi; \
 	$(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
 	  --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) \
 	  --files-from=$(srcdir)/POTFILES.in \
 	  --copyright-holder='$(COPYRIGHT_HOLDER)' \
-	&& test ! -f $(DOMAIN).po \
-	   || ( rm -f $(srcdir)/$(DOMAIN).pot \
-		&& mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot )
+	  --msgid-bugs-address="$$msgid_bugs_address"
+	test ! -f $(DOMAIN).po || { \
+	  if test -f $(srcdir)/$(DOMAIN).pot; then \
+	    sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \
+	    sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \
+	    if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \
+	      rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \
+	    else \
+	      rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \
+	      mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \
+	    fi; \
+	  else \
+	    mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \
+	  fi; \
+	}
 
+# This rule has no dependencies: we don't need to update $(DOMAIN).pot at
+# every "make" invocation, only create it when it is missing.
+# Only "make $(DOMAIN).pot-update" or "make dist" will force an update.
 $(srcdir)/$(DOMAIN).pot:
 	$(MAKE) $(DOMAIN).pot-update
 
+# This target rebuilds a PO file if $(DOMAIN).pot has changed.
+# Note that a PO file is not touched if it doesn't need to be changed.
 $(POFILES): $(srcdir)/$(DOMAIN).pot
 	@lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \
-	test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
-	echo "$${cdcmd}$(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot"; \
-	cd $(srcdir) && $(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot
+	if test -f "$(srcdir)/$${lang}.po"; then \
+	  test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
+	  echo "$${cdcmd}$(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot"; \
+	  cd $(srcdir) && $(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot; \
+	else \
+	  $(MAKE) $${lang}.po-create; \
+	fi
 
 
 install: install-exec install-data
 install-exec:
 install-data: install-data-@USE_NLS@
-	if test "$(PACKAGE)" = "gettext"; then \
-	  $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
-	  for file in $(DISTFILES.common); do \
+	if test "$(PACKAGE)" = "gettext-tools"; then \
+	  $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \
+	  for file in $(DISTFILES.common) Makevars.template; do \
 	    $(INSTALL_DATA) $(srcdir)/$$file \
 			    $(DESTDIR)$(gettextsrcdir)/$$file; \
 	  done; \
+	  for file in Makevars; do \
+	    rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
+	  done; \
 	else \
 	  : ; \
 	fi
 install-data-no: all
 install-data-yes: all
-	$(mkinstalldirs) $(DESTDIR)$(datadir)
+	$(mkdir_p) $(DESTDIR)$(datadir)
 	@catalogs='$(CATALOGS)'; \
 	for cat in $$catalogs; do \
 	  cat=`basename $$cat`; \
 	  lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
 	  dir=$(localedir)/$$lang/LC_MESSAGES; \
-	  $(mkinstalldirs) $(DESTDIR)$$dir; \
+	  $(mkdir_p) $(DESTDIR)$$dir; \
 	  if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \
 	  $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \
 	  echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \
@@ -156,20 +236,20 @@
 installdirs: installdirs-exec installdirs-data
 installdirs-exec:
 installdirs-data: installdirs-data-@USE_NLS@
-	if test "$(PACKAGE)" = "gettext"; then \
-	  $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
+	if test "$(PACKAGE)" = "gettext-tools"; then \
+	  $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \
 	else \
 	  : ; \
 	fi
 installdirs-data-no:
 installdirs-data-yes:
-	$(mkinstalldirs) $(DESTDIR)$(datadir)
+	$(mkdir_p) $(DESTDIR)$(datadir)
 	@catalogs='$(CATALOGS)'; \
 	for cat in $$catalogs; do \
 	  cat=`basename $$cat`; \
 	  lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
 	  dir=$(localedir)/$$lang/LC_MESSAGES; \
-	  $(mkinstalldirs) $(DESTDIR)$$dir; \
+	  $(mkdir_p) $(DESTDIR)$$dir; \
 	  for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
 	    if test -n "$$lc"; then \
 	      if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
@@ -201,8 +281,8 @@
 uninstall: uninstall-exec uninstall-data
 uninstall-exec:
 uninstall-data: uninstall-data-@USE_NLS@
-	if test "$(PACKAGE)" = "gettext"; then \
-	  for file in $(DISTFILES.common); do \
+	if test "$(PACKAGE)" = "gettext-tools"; then \
+	  for file in $(DISTFILES.common) Makevars.template; do \
 	    rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
 	  done; \
 	else \
@@ -221,10 +301,12 @@
 
 check: all
 
-dvi info tags TAGS ID:
+info dvi ps pdf html tags TAGS ctags CTAGS ID:
 
 mostlyclean:
-	rm -f core core.* $(DOMAIN).po *.new.po
+	rm -f remove-potcdate.sed
+	rm -f stamp-poT
+	rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po
 	rm -fr *.o
 
 clean: mostlyclean
@@ -235,35 +317,55 @@
 maintainer-clean: distclean
 	@echo "This command is intended for maintainers to use;"
 	@echo "it deletes files that may require special tools to rebuild."
-	rm -f $(GMOFILES)
+	rm -f stamp-po $(GMOFILES)
 
 distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
 dist distdir:
 	$(MAKE) update-po
 	@$(MAKE) dist2
 # This is a separate target because 'update-po' must be executed before.
-dist2: $(DISTFILES)
+dist2: stamp-po $(DISTFILES)
 	dists="$(DISTFILES)"; \
-	if test -f $(srcdir)/ChangeLog; then dists="$$dists ChangeLog"; fi; \
+	if test "$(PACKAGE)" = "gettext-tools"; then \
+	  dists="$$dists Makevars.template"; \
+	fi; \
+	if test -f $(srcdir)/$(DOMAIN).pot; then \
+	  dists="$$dists $(DOMAIN).pot stamp-po"; \
+	fi; \
+	if test -f $(srcdir)/ChangeLog; then \
+	  dists="$$dists ChangeLog"; \
+	fi; \
+	for i in 0 1 2 3 4 5 6 7 8 9; do \
+	  if test -f $(srcdir)/ChangeLog.$$i; then \
+	    dists="$$dists ChangeLog.$$i"; \
+	  fi; \
+	done; \
 	if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \
 	for file in $$dists; do \
 	  if test -f $$file; then \
-	    cp -p $$file $(distdir); \
+	    cp -p $$file $(distdir) || exit 1; \
 	  else \
-	    cp -p $(srcdir)/$$file $(distdir); \
+	    cp -p $(srcdir)/$$file $(distdir) || exit 1; \
 	  fi; \
 	done
 
 update-po: Makefile
 	$(MAKE) $(DOMAIN).pot-update
-	$(MAKE) $(UPDATEPOFILES)
+	test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES)
 	$(MAKE) update-gmo
 
+# General rule for creating PO files.
+
+.nop.po-create:
+	@lang=`echo $@ | sed -e 's/\.po-create$$//'`; \
+	echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \
+	exit 1
+
 # General rule for updating PO files.
 
 .nop.po-update:
 	@lang=`echo $@ | sed -e 's/\.po-update$$//'`; \
-	if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; fi; \
+	if test "$(PACKAGE)" = "gettext-tools"; then PATH=`pwd`/../src:$$PATH; fi; \
 	tmpdir=`pwd`; \
 	echo "$$lang:"; \
 	test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
@@ -290,10 +392,9 @@
 update-gmo: Makefile $(GMOFILES)
 	@:
 
-Makefile: Makefile.in.in $(top_builddir)/config.status POTFILES.in
+Makefile: Makefile.in.in Makevars $(top_builddir)/config.status @POMAKEFILEDEPS@
 	cd $(top_builddir) \
-	  && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \
-	       $(SHELL) ./config.status
+	  && $(SHELL) ./config.status $(subdir)/$@.in po-directories
 
 force:
 
Index: po/Makevars
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/po/Makevars,v
retrieving revision 1.4
diff -u -r1.4 Makevars
--- po/Makevars	22 Aug 2007 17:11:08 -0000	1.4
+++ po/Makevars	27 Aug 2007 19:21:43 -0000
@@ -8,7 +8,8 @@
 top_builddir = ..
 
 # These options get passed to xgettext.
-XGETTEXT_OPTIONS = --keyword=_ --keyword=N_
+XGETTEXT_OPTIONS = --keyword=_ --keyword=N_  --flag=error:3:c-format \
+		   --flag=ERROR:1:c-format
 
 # This is the copyright holder that gets inserted into the header of the
 # $(DOMAIN).pot file.  Set this to the copyright holder of the surrounding
@@ -20,6 +21,22 @@
 # their copyright.
 COPYRIGHT_HOLDER = Red Hat, Inc.
 
+# This is the email address or URL to which the translators shall report
+# bugs in the untranslated strings:
+# - Strings which are not entire sentences, see the maintainer guidelines
+#   in the GNU gettext documentation, section 'Preparing Strings'.
+# - Strings which use unclear terms or require additional context to be
+#   understood.
+# - Strings which make invalid assumptions about notation of date, time or
+#   money.
+# - Pluralisation problems.
+# - Incorrect English spelling.
+# - Incorrect formatting.
+# It can be your email address, or a mailing list address where translators
+# can write to without being subscribed, or the URL of a web page through
+# which the translators can contact you.
+MSGID_BUGS_ADDRESS = http://bugzilla.redhat.com/
+
 # This is the list of locale categories, beyond LC_MESSAGES, for which the
 # message catalogs shall be used.  It is usually empty.
 EXTRA_LOCALE_CATEGORIES =
Index: po/POTFILES.in
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/po/POTFILES.in,v
retrieving revision 1.4
diff -u -r1.4 POTFILES.in
--- po/POTFILES.in	22 Aug 2007 17:11:08 -0000	1.4
+++ po/POTFILES.in	27 Aug 2007 19:21:43 -0000
@@ -7,6 +7,7 @@
 lib/xstrndup.c
 
 # Library sources
+libelf/elf_error.c
 libasm/asm_error.c
 libdw/dwarf_error.c
 
Index: po/Rules-quot
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/po/Rules-quot,v
retrieving revision 1.4
diff -u -r1.4 Rules-quot
--- po/Rules-quot	22 Aug 2007 17:11:08 -0000	1.4
+++ po/Rules-quot	27 Aug 2007 19:21:43 -0000
@@ -4,6 +4,11 @@
 
 .SUFFIXES: .insert-header .po-update-en
 
+en@quot.po-create:
+	$(MAKE) en@quot.po-update
+en@boldquot.po-create:
+	$(MAKE) en@boldquot.po-update
+
 en@quot.po-update: en@quot.po-update-en
 en@boldquot.po-update: en@boldquot.po-update-en
 
Index: src/ChangeLog
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/src/ChangeLog,v
retrieving revision 1.8
diff -u -r1.8 ChangeLog
--- src/ChangeLog	22 Aug 2007 17:11:09 -0000	1.8
+++ src/ChangeLog	27 Aug 2007 19:21:43 -0000
@@ -1,3 +1,136 @@
+2007-08-12  Roland McGrath  <roland@redhat.com>
+
+	* elflint.c (check_note): Accept type 0 with name "Linux".
+
+	* elflint.c (special_sections): Accept SHF_ALLOC for ".note".
+
+	* elflint.c (section_flags_string): Return "none" for 0, not "".
+
+2007-08-11  Roland McGrath  <roland@redhat.com>
+
+	* elflint.c (check_note): Accept NT_GNU_HWCAP, NT_GNU_BUILD_ID.
+
+2007-08-04  Ulrich Drepper  <drepper@redhat.com>
+
+	* readelf.c (hex_dump): Use isprint to determine whether to print
+	character itself or full stop character.
+	(dump_data): No need to check endp for NULL after strtol call.
+
+2007-08-03  Roland McGrath  <roland@redhat.com>
+
+	* readelf.c (print_string_sections): New variable.
+	(options, parse_opt): Handle --strings/-p to set it.
+	(print_strings): New function.
+	(process_elf_file): Call it under -p.
+
+	* readelf.c (options): Add hidden aliases --segments, --sections,
+	as taken by binutils readelf.
+
+2007-08-01  Roland McGrath  <roland@redhat.com>
+
+	* readelf.c (dump_data_sections, dump_data_sections_tail):
+	New variables.
+	(options, parse_opt): Handle --hex-dump/-x, set them.
+	(hex_dump): New function.
+	(dump_data): New function, call it.
+	(process_elf_file): Call it.
+
+2007-07-25  Roland McGrath  <roland@redhat.com>
+
+	* addr2line.c (show_symbols): New variable.
+	(print_addrsym): New function.
+	(handle_address): Call it.
+	(options, parse_opt): Handle -S/--symbols.
+
+2007-06-05  Ulrich Drepper  <drepper@redhat.com>
+
+	* addr2line.c: Update for latest autoconf header.
+	* ar.c: Likewise.
+	* elfcmp.c: Likewise.
+	* elflint.c: Likewise.
+	* findtextrel.c: Likewise.
+	* ld.c: Likewise.
+	* ldgeneric.c: Likewise.
+	* nm.c: Likewise.
+	* objdump.c: Likewise.
+	* ranlib.c: Likewise.
+	* readelf.c: Likewise.
+	* size.c: Likewise.
+	* strings.c: Likewise.
+	* strip.c: Likewise.
+	* unstrip.c: Likewise.
+
+2007-05-18  Roland McGrath  <roland@redhat.com>
+
+	* unstrip.c (copy_elided_sections): Match up non-NOBITS sections with
+	stripped file, so as not to duplicate a section copied in both.
+
+	* strip.c (handle_elf): Keep SHT_NOTE section copies in the debug file.
+
+2007-05-17  Roland McGrath  <roland@redhat.com>
+
+	* unstrip.c (copy_elided_sections): Don't call gelf_newphdr for 0.
+
+	* unstrip.c (handle_file): Tweak BIAS != 0 warning.
+
+	* unstrip.c (handle_file): Take new arg CREATE_DIRS.  If set,
+	call make_directories here.
+	(handle_explicit_files): Take new arg CREATE_DIRS, pass it down.
+	(handle_dwfl_module): Likewise.
+	(handle_implicit_modules): Update callers.
+	(handle_output_dir_module): Likewise.  Don't do make_directories here.
+
+	* unstrip.c (get_section_name): New function, broken out of ...
+	(copy_elided_sections): here.  Update callers.
+	(find_alloc_section): Broken out of ...
+	(copy_elided_sections): ... here.  Update caller.
+	(symtab_count_leading_section_symbols): Take new arg NEWSYMDATA,
+	update STT_SECTION symbols' st_value fields as a side effect.
+	(check_symtab_section_symbols): Update caller.
+	(add_new_section_symbols): Set st_value in symbols added.
+	(collect_symbols): Reset S->value for STT_SECTION symbols recorded.
+	Take new arg SPLIT_BSS.  Adjust S->shndx recorded for symbols moved
+	from .bss to .dynbss.
+	(find_alloc_sections_prelink): New function.  Associate debug file
+	allocated SHT_NOBITS shdrs with stripped moved by prelink via
+	.gnu.prelink_undo information.
+	(copy_elided_sections): Call it when we couldn't find every allocated
+	section.  Don't use a debug file non-NOBITS section if SHF_ALLOC.
+	Take STRIPPED_EHDR arg instead of E_TYPE and PHNUM.
+	(handle_file): Update callers.
+
+	* unstrip.c (copy_elided_sections): Ignore unfound unallocated section
+	named ".comment".
+
+	* elflint.c (check_sections): Fix association of segments with
+	sections when p_memsz > p_filesz.
+
+2007-04-29  Roland McGrath  <roland@redhat.com>
+
+	* addr2line.c (options, main): Tweak argp group settings to fix
+	usage output.
+
+2007-04-28  Roland McGrath  <roland@redhat.com>
+
+	* strip.c (handle_elf): Update debug file's SHT_NOBITS sections'
+	sizes to match sections adjusted in the stripped file.
+
+2007-04-24  Roland McGrath  <roland@redhat.com>
+
+	* elfcmp.c (OPT_HASH_INEXACT): New macro.
+	(hash_inexact): New variable.
+	(options, parse_opt): Add --hash-inexact option to set it.
+	(hash_content_equivalent): New function.
+	(main): Call it for differing SHT_HASH sections under --hash-inexact.
+
+2007-04-23  Roland McGrath  <roland@redhat.com>
+
+	* unstrip.c: New file.
+	* Makefile.am (bin_PROGRAMS): Add it.
+	(unstrip_LDADD): New variable.
+
+	* strip.c (options): Allow --output for -o.
+
 2007-02-15  Ulrich Drepper  <drepper@redhat.com>
 
 	* readelf.c: Remove unused code.  Add a few consts.
Index: src/Makefile.am
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/src/Makefile.am,v
retrieving revision 1.7
diff -u -r1.7 Makefile.am
--- src/Makefile.am	22 Aug 2007 17:11:09 -0000	1.7
+++ src/Makefile.am	27 Aug 2007 19:21:43 -0000
@@ -52,7 +52,7 @@
 base_cpu = @base_cpu@
 
 bin_PROGRAMS = readelf nm size strip ld elflint findtextrel addr2line \
-	       elfcmp objdump ranlib strings ar
+	       elfcmp objdump ranlib strings ar unstrip
 
 
 ld_dsos = libld_elf_i386_pic.a
@@ -123,6 +123,7 @@
 strings_LDADD = $(libelf) $(libeu) $(libmudflap)
 ar_LDADD = libar.a $(libelf) $(libeu) $(libmudflap)
 CFLAGS_ar = -DAR=\"$(shell echo ar|sed '$(transform)')\"
+unstrip_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) $(libmudflap) -ldl
 
 ldlex.o: ldscript.c
 ldlex_no_Werror = yes
Index: src/addr2line.c
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/src/addr2line.c,v
retrieving revision 1.6
diff -u -r1.6 addr2line.c
--- src/addr2line.c	22 Aug 2007 17:11:09 -0000	1.6
+++ src/addr2line.c	27 Aug 2007 19:21:43 -0000
@@ -61,11 +61,12 @@
 /* Definitions of arguments for argp functions.  */
 static const struct argp_option options[] =
 {
-  { NULL, 0, NULL, 0, N_("Output Selection:"), 0 },
+  { NULL, 0, NULL, 0, N_("Output selection options:"), 2 },
   { "basenames", 's', NULL, 0, N_("Show only base names of source files"), 0 },
   { "absolute", 'A', NULL, 0,
     N_("Show absolute file names using compilation directory"), 0 },
   { "functions", 'f', NULL, 0, N_("Also show function names"), 0 },
+  { "symbols", 'S', NULL, 0, N_("Also show symbol or section names"), 0 },
 
   { NULL, 0, NULL, 0, N_("Miscellaneous:"), 0 },
   /* Unsupported options.  */
@@ -107,6 +108,9 @@
 /* True if function names should be shown.  */
 static bool show_functions;
 
+/* True if ELF symbol or section info should be shown.  */
+static bool show_symbols;
+
 
 int
 main (int argc, char *argv[])
@@ -124,13 +128,14 @@
   (void) setlocale (LC_ALL, "");
 
   /* Make sure the message catalog can be found.  */
-  (void) bindtextdomain (PACKAGE, LOCALEDIR);
+  (void) bindtextdomain (PACKAGE_TARNAME, LOCALEDIR);
 
   /* Initialize the message catalog.  */
-  (void) textdomain (PACKAGE);
+  (void) textdomain (PACKAGE_TARNAME);
 
   /* Parse and process arguments.  This includes opening the modules.  */
   argp_children[0].argp = dwfl_standard_argp ();
+  argp_children[0].group = 1;
   Dwfl *dwfl = NULL;
   (void) argp_parse (&argp, argc, argv, 0, &remaining, &dwfl);
   assert (dwfl != NULL);
@@ -181,7 +186,7 @@
 static void
 print_version (FILE *stream, struct argp_state *state __attribute__ ((unused)))
 {
-  fprintf (stream, "addr2line (%s) %s\n", PACKAGE_NAME, VERSION);
+  fprintf (stream, "addr2line (%s) %s\n", PACKAGE_NAME, PACKAGE_VERSION);
   fprintf (stream, gettext ("\
 Copyright (C) %s Red Hat, Inc.\n\
 This is free software; see the source for copying conditions.  There is NO\n\
@@ -220,6 +225,10 @@
       show_functions = true;
       break;
 
+    case 'S':
+      show_symbols = true;
+      break;
+
     default:
       return ARGP_ERR_UNKNOWN;
     }
@@ -297,6 +306,29 @@
 }
 
 static void
+print_addrsym (Dwfl_Module *mod, GElf_Addr addr)
+{
+  GElf_Sym s;
+  GElf_Word shndx;
+  const char *name = dwfl_module_addrsym (mod, addr, &s, &shndx);
+  if (name == NULL)
+    {
+      /* No symbol name.  Get a section name instead.  */
+      int i = dwfl_module_relocate_address (mod, &addr);
+      if (i >= 0)
+	name = dwfl_module_relocation_info (mod, i, NULL);
+      if (name == NULL)
+	puts ("??");
+      else
+	printf ("(%s)+%#" PRIx64 "\n", name, addr);
+    }
+  else if (addr == s.st_value)
+    puts (name);
+  else
+    printf ("%s+%#" PRIx64 "\n", name, addr - s.st_value);
+}
+
+static void
 handle_address (GElf_Addr addr, Dwfl *dwfl)
 {
   Dwfl_Module *mod = dwfl_addrmodule (dwfl, addr);
@@ -305,10 +337,13 @@
     {
       /* First determine the function name.  Use the DWARF information if
 	 possible.  */
-      if (! print_dwarf_function (mod, addr))
+      if (! print_dwarf_function (mod, addr) && !show_symbols)
 	puts (dwfl_module_addrname (mod, addr) ?: "??");
     }
 
+  if (show_symbols)
+    print_addrsym (mod, addr);
+
   Dwfl_Line *line = dwfl_module_getsrc (mod, addr);
 
   const char *src;
Index: src/ar.c
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/src/ar.c,v
retrieving revision 1.4
diff -u -r1.4 ar.c
--- src/ar.c	22 Aug 2007 17:11:09 -0000	1.4
+++ src/ar.c	27 Aug 2007 19:21:44 -0000
@@ -159,10 +159,10 @@
   (void) setlocale (LC_ALL, "");
 
   /* Make sure the message catalog can be found.  */
-  (void) bindtextdomain (PACKAGE, LOCALEDIR);
+  (void) bindtextdomain (PACKAGE_TARNAME, LOCALEDIR);
 
   /* Initialize the message catalog.  */
-  (void) textdomain (PACKAGE);
+  (void) textdomain (PACKAGE_TARNAME);
 
   /* For historical reasons the options in the first parameter need
      not be preceded by a dash.  Add it now if necessary.  */
@@ -281,7 +281,7 @@
 static void
 print_version (FILE *stream, struct argp_state *state __attribute__ ((unused)))
 {
-  fprintf (stream, "ar (%s) %s\n", PACKAGE_NAME, VERSION);
+  fprintf (stream, "ar (%s) %s\n", PACKAGE_NAME, PACKAGE_VERSION);
   fprintf (stream, gettext ("\
 Copyright (C) %s Red Hat, Inc.\n\
 This is free software; see the source for copying conditions.  There is NO\n\
Index: src/elfcmp.c
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/src/elfcmp.c,v
retrieving revision 1.4
diff -u -r1.4 elfcmp.c
--- src/elfcmp.c	22 Aug 2007 17:11:09 -0000	1.4
+++ src/elfcmp.c	27 Aug 2007 19:21:44 -0000
@@ -59,13 +59,16 @@
 const char *argp_program_bug_address = PACKAGE_BUGREPORT;
 
 /* Values for the parameters which have no short form.  */
-#define OPT_GAPS 0x100
+#define OPT_GAPS		0x100
+#define OPT_HASH_INEXACT	0x101
 
 /* Definitions of arguments for argp functions.  */
 static const struct argp_option options[] =
 {
   { NULL, 0, NULL, 0, N_("Control options:"), 0 },
   { "gaps", OPT_GAPS, "ACTION", 0, N_("Control treatment of gaps in loadable segments [ignore|match] (default: ignore)"), 0 },
+  { "hash-inexact", OPT_HASH_INEXACT, NULL, 0,
+    N_("Ignore permutation of buckets in SHT_HASH section"), 0 },
   { "quiet", 'q', NULL, 0, N_("Output nothing; yield exit status only"), 0 },
 
   { NULL, 0, NULL, 0, N_("Miscellaneous:"), 0 },
@@ -108,6 +111,11 @@
 /* Nonzero if only exit status is wanted.  */
 static bool quiet;
 
+/* True iff SHT_HASH treatment should be generous.  */
+static bool hash_inexact;
+
+static bool hash_content_equivalent (size_t entsize, Elf_Data *, Elf_Data *);
+
 
 int
 main (int argc, char *argv[])
@@ -116,10 +124,10 @@
   (void) setlocale (LC_ALL, "");
 
   /* Make sure the message catalog can be found.  */
-  (void) bindtextdomain (PACKAGE, LOCALEDIR);
+  (void) bindtextdomain (PACKAGE_TARNAME, LOCALEDIR);
 
   /* Initialize the message catalog.  */
-  (void) textdomain (PACKAGE);
+  (void) textdomain (PACKAGE_TARNAME);
 
   /* Parse and process arguments.  */
   int remaining;
@@ -353,6 +361,12 @@
 			    && memcmp (data1->d_buf, data2->d_buf,
 				       data1->d_size) != 0)))
 	    {
+	      if (hash_inexact
+		  && shdr1->sh_type == SHT_HASH
+		  && data1->d_size == data2->d_size
+		  && hash_content_equivalent (shdr1->sh_entsize, data1, data2))
+		break;
+
 	      if (! quiet)
 		{
 		  if (elf_ndxscn (scn1) == elf_ndxscn (scn2))
@@ -360,7 +374,6 @@
 %s %s differ: section [%zu] '%s' content"),
 			   fname1, fname2, elf_ndxscn (scn1), sname1);
 		  else
-		  if (elf_ndxscn (scn1) == elf_ndxscn (scn2))
 		    error (0, 0, gettext ("\
 %s %s differ: section [%zu,%zu] '%s' content"),
 			   fname1, fname2, elf_ndxscn (scn1),
@@ -502,7 +515,7 @@
 static void
 print_version (FILE *stream, struct argp_state *state __attribute__ ((unused)))
 {
-  fprintf (stream, "elfcmp (%s) %s\n", PACKAGE_NAME, VERSION);
+  fprintf (stream, "elfcmp (%s) %s\n", PACKAGE_NAME, PACKAGE_VERSION);
   fprintf (stream, gettext ("\
 Copyright (C) %s Red Hat, Inc.\n\
 This is free software; see the source for copying conditions.  There is NO\n\
@@ -539,6 +552,10 @@
 	}
       break;
 
+    case OPT_HASH_INEXACT:
+      hash_inexact = true;
+      break;
+
     default:
       return ARGP_ERR_UNKNOWN;
     }
@@ -625,7 +642,7 @@
 }
 
 
-static  int
+static int
 regioncompare (const void *p1, const void *p2)
 {
   const struct region *r1 = (const struct region *) p1;
@@ -635,3 +652,95 @@
     return -1;
   return 1;
 }
+
+
+static int
+compare_Elf32_Word (const void *p1, const void *p2)
+{
+  const Elf32_Word *w1 = p1;
+  const Elf32_Word *w2 = p2;
+  assert (sizeof (int) >= sizeof (*w1));
+  return (int) *w1 - (int) *w2;
+}
+
+static int
+compare_Elf64_Xword (const void *p1, const void *p2)
+{
+  const Elf64_Xword *w1 = p1;
+  const Elf64_Xword *w2 = p2;
+  return *w1 < *w2 ? -1 : *w1 > *w2 ? 1 : 0;
+}
+
+static bool
+hash_content_equivalent (size_t entsize, Elf_Data *data1, Elf_Data *data2)
+{
+#define CHECK_HASH(Hash_Word)						      \
+  {									      \
+    const Hash_Word *const hash1 = data1->d_buf;			      \
+    const Hash_Word *const hash2 = data2->d_buf;			      \
+    const size_t nbucket = hash1[0];					      \
+    const size_t nchain = hash1[1];					      \
+    if (data1->d_size != (2 + nbucket + nchain) * sizeof hash1[0]	      \
+	|| hash2[0] != nbucket || hash2[1] != nchain)			      \
+      return false;							      \
+									      \
+    const Hash_Word *const bucket1 = &hash1[2];				      \
+    const Hash_Word *const chain1 = &bucket1[nbucket];			      \
+    const Hash_Word *const bucket2 = &hash2[2];				      \
+    const Hash_Word *const chain2 = &bucket2[nbucket];			      \
+									      \
+    bool chain_ok[nchain];						      \
+    Hash_Word temp1[nchain - 1];					      \
+    Hash_Word temp2[nchain - 1];					      \
+    memset (chain_ok, 0, sizeof chain_ok);				      \
+    for (size_t i = 0; i < nbucket; ++i)				      \
+      {									      \
+	if (bucket1[i] >= nchain || bucket2[i] >= nchain)		      \
+	  return false;							      \
+									      \
+	size_t b1 = 0;							      \
+	for (size_t p = bucket1[i]; p != STN_UNDEF; p = chain1[p])	      \
+	  if (p >= nchain || b1 >= nchain - 1)				      \
+	    return false;						      \
+	  else								      \
+	    temp1[b1++] = p;						      \
+									      \
+	size_t b2 = 0;							      \
+	for (size_t p = bucket2[i]; p != STN_UNDEF; p = chain2[p])	      \
+	  if (p >= nchain || b2 >= nchain - 1)				      \
+	    return false;						      \
+	  else								      \
+	    temp2[b2++] = p;						      \
+									      \
+	if (b1 != b2)							      \
+	  return false;							      \
+									      \
+	qsort (temp1, b1, sizeof temp1[0], compare_##Hash_Word);	      \
+	qsort (temp2, b2, sizeof temp2[0], compare_##Hash_Word);	      \
+									      \
+	for (b1 = 0; b1 < b2; ++b1)					      \
+	  if (temp1[b1] != temp2[b1])					      \
+	    return false;						      \
+	  else								      \
+	    chain_ok[temp1[b1]] = true;					      \
+      }									      \
+									      \
+    for (size_t i = 0; i < nchain; ++i)					      \
+      if (!chain_ok[i] && chain1[i] != chain2[i])			      \
+	return false;							      \
+									      \
+    return true;							      \
+  }
+
+  switch (entsize)
+    {
+    case 4:
+      CHECK_HASH (Elf32_Word);
+      break;
+    case 8:
+      CHECK_HASH (Elf64_Xword);
+      break;
+    }
+
+  return false;
+}
Index: src/elflint.c
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/src/elflint.c,v
retrieving revision 1.7
diff -u -r1.7 elflint.c
--- src/elflint.c	22 Aug 2007 17:11:09 -0000	1.7
+++ src/elflint.c	27 Aug 2007 19:21:44 -0000
@@ -134,7 +134,7 @@
   setlocale (LC_ALL, "");
 
   /* Initialize the message catalog.  */
-  textdomain (PACKAGE);
+  textdomain (PACKAGE_TARNAME);
 
   /* Parse and process arguments.  */
   int remaining;
@@ -231,7 +231,7 @@
 static void
 print_version (FILE *stream, struct argp_state *state __attribute__ ((unused)))
 {
-  fprintf (stream, "elflint (%s) %s\n", PACKAGE_NAME, VERSION);
+  fprintf (stream, "elflint (%s) %s\n", PACKAGE_NAME, PACKAGE_VERSION);
   fprintf (stream, gettext ("\
 Copyright (C) %s Red Hat, Inc.\n\
 This is free software; see the source for copying conditions.  There is NO\n\
@@ -2308,6 +2308,9 @@
 static const char *
 section_flags_string (GElf_Word flags, char *buf, size_t len)
 {
+  if (flags == 0)
+    return "none";
+
   static const struct
   {
     GElf_Word flag;
@@ -2950,7 +2953,7 @@
     { ".init_array", 12, SHT_INIT_ARRAY, exact, SHF_ALLOC | SHF_WRITE, 0 },
     { ".interp", 8, SHT_PROGBITS, atleast, 0, SHF_ALLOC }, // XXX more tests?
     { ".line", 6, SHT_PROGBITS, exact, 0, 0 },
-    { ".note", 6, SHT_NOTE, exact, 0, 0 },
+    { ".note", 6, SHT_NOTE, atleast, 0, SHF_ALLOC },
     { ".plt", 5, SHT_PROGBITS, unused, 0, 0 }, // XXX more tests
     { ".preinit_array", 15, SHT_PREINIT_ARRAY, exact, SHF_ALLOC | SHF_WRITE, 0 },
     { ".rela", 5, SHT_RELA, atleast, 0, SHF_ALLOC }, // XXX more tests
@@ -3252,7 +3255,9 @@
 		    || (phdr->p_type == PT_TLS
 			&& (shdr->sh_flags & SHF_TLS) != 0))
 		&& phdr->p_offset <= shdr->sh_offset
-		&& phdr->p_offset + phdr->p_memsz > shdr->sh_offset)
+		&& (phdr->p_offset + phdr->p_filesz > shdr->sh_offset
+		    || (phdr->p_offset + phdr->p_memsz > shdr->sh_offset
+			&& shdr->sh_type == SHT_NOBITS)))
 	      {
 		/* Found the segment.  */
 		if (phdr->p_offset + phdr->p_memsz
@@ -3529,16 +3534,28 @@
 	    }
 	}
       else
-	{
-	  if (type != NT_VERSION)
+	switch (type)
+	  {
+	  case NT_GNU_ABI_TAG:	/* aka NT_VERSION */
+	  case NT_GNU_HWCAP:
+	  case NT_GNU_BUILD_ID:
+	    /* Known type.  */
+	    break;
+
+	  case 0:
+	    /* Linux vDSOs use a type 0 note for the kernel version word.  */
+	    if (namesz == sizeof "Linux"
+		&& !memcmp (notemem + idx + 3 * align, "Linux", sizeof "Linux"))
+	      break;
+
+	  default:
 	    ERROR (gettext ("\
 phdr[%d]: unknown object file note type %" PRIu64 " at offset %" PRIu64 "\n"),
 		   cnt, type, idx);
-	}
+	  }
 
       /* Move to the next entry.  */
       idx += 3 * align + ALIGNED_LEN (namesz) + ALIGNED_LEN (descsz);
-
     }
 
   gelf_freechunk (ebl->elf, notemem);
Index: src/findtextrel.c
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/src/findtextrel.c,v
retrieving revision 1.4
diff -u -r1.4 findtextrel.c
--- src/findtextrel.c	22 Aug 2007 17:11:09 -0000	1.4
+++ src/findtextrel.c	27 Aug 2007 19:21:44 -0000
@@ -120,10 +120,10 @@
   (void) setlocale (LC_ALL, "");
 
   /* Make sure the message catalog can be found.  */
-  (void) bindtextdomain (PACKAGE, LOCALEDIR);
+  (void) bindtextdomain (PACKAGE_TARNAME, LOCALEDIR);
 
   /* Initialize the message catalog.  */
-  (void) textdomain (PACKAGE);
+  (void) textdomain (PACKAGE_TARNAME);
 
   /* Parse and process arguments.  */
   (void) argp_parse (&argp, argc, argv, 0, &remaining, NULL);
@@ -164,7 +164,7 @@
 static void
 print_version (FILE *stream, struct argp_state *state __attribute__ ((unused)))
 {
-  fprintf (stream, "findtextrel (%s) %s\n", PACKAGE_NAME, VERSION);
+  fprintf (stream, "findtextrel (%s) %s\n", PACKAGE_NAME, PACKAGE_VERSION);
   fprintf (stream, gettext ("\
 Copyright (C) %s Red Hat, Inc.\n\
 This is free software; see the source for copying conditions.  There is NO\n\
Index: src/ld.c
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/src/ld.c,v
retrieving revision 1.6
diff -u -r1.6 ld.c
--- src/ld.c	22 Aug 2007 17:11:09 -0000	1.6
+++ src/ld.c	27 Aug 2007 19:21:45 -0000
@@ -296,10 +296,10 @@
   setlocale (LC_ALL, "");
 
   /* Make sure the message catalog can be found.  */
-  bindtextdomain (PACKAGE, LOCALEDIR);
+  bindtextdomain (PACKAGE_TARNAME, LOCALEDIR);
 
   /* Initialize the message catalog.  */
-  textdomain (PACKAGE);
+  textdomain (PACKAGE_TARNAME);
 
   /* Before we start tell the ELF library which version we are using.  */
   elf_version (EV_CURRENT);
@@ -865,7 +865,7 @@
 static void
 print_version (FILE *stream, struct argp_state *state __attribute__ ((unused)))
 {
-  fprintf (stream, "ld (%s) %s\n", PACKAGE_NAME, VERSION);
+  fprintf (stream, "ld (%s) %s\n", PACKAGE_NAME, PACKAGE_VERSION);
   fprintf (stream, gettext ("\
 Copyright (C) %s Red Hat, Inc.\n\
 This is free software; see the source for copying conditions.  There is NO\n\
Index: src/ldgeneric.c
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/src/ldgeneric.c,v
retrieving revision 1.5
diff -u -r1.5 ldgeneric.c
--- src/ldgeneric.c	22 Aug 2007 17:11:09 -0000	1.5
+++ src/ldgeneric.c	27 Aug 2007 19:21:46 -0000
@@ -4535,7 +4535,7 @@
 		       gettext ("cannot create section for output file: %s"),
 		       elf_errmsg (-1));
 
-	      outdata->d_buf = (void *) "\0ld (Red Hat " PACKAGE ") " VERSION;
+	      outdata->d_buf = (void *) "\0ld (" PACKAGE_NAME ") " PACKAGE_VERSION;
 	      outdata->d_size = strlen ((char *) outdata->d_buf + 1) + 2;
 	      outdata->d_off = offset;
 	      outdata->d_type = ELF_T_BYTE;
Index: src/ldlex.c
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/src/ldlex.c,v
retrieving revision 1.6
diff -u -r1.6 ldlex.c
--- src/ldlex.c	22 Aug 2007 17:11:09 -0000	1.6
+++ src/ldlex.c	27 Aug 2007 19:21:46 -0000
@@ -1,8 +1,13 @@
+#line 2 "ldlex.c"
+
+#line 4 "ldlex.c"
+
+#define  YY_INT_ALIGNED short int
+
+/* A lexical scanner generated by flex */
+
 #define yy_create_buffer ld_create_buffer
 #define yy_delete_buffer ld_delete_buffer
-#define yy_scan_buffer ld_scan_buffer
-#define yy_scan_string ld_scan_string
-#define yy_scan_bytes ld_scan_bytes
 #define yy_flex_debug ld_flex_debug
 #define yy_init_buffer ld_init_buffer
 #define yy_flush_buffer ld_flush_buffer
@@ -11,9 +16,11 @@
 #define yyin ldin
 #define yyleng ldleng
 #define yylex ldlex
+#define yylineno ldlineno
 #define yyout ldout
 #define yyrestart ldrestart
 #define yytext ldtext
+<<<<<<< ldlex.c
 #define yylineno ldlineno
 
 #line 20 "ldlex.c"
@@ -22,29 +29,95 @@
 /* Scanner skeleton version:
  * $Header: /cvs/frysk/frysk-imports/elfutils/src/ldlex.c,v 1.6 2007/08/22 17:11:09 swagiaal Exp $
  */
+=======
+#define yywrap ldwrap
+#define yyalloc ldalloc
+#define yyrealloc ldrealloc
+#define yyfree ldfree
+>>>>>>> 1.1.1.3
 
 #define FLEX_SCANNER
 #define YY_FLEX_MAJOR_VERSION 2
 #define YY_FLEX_MINOR_VERSION 5
+#define YY_FLEX_SUBMINOR_VERSION 33
+#if YY_FLEX_SUBMINOR_VERSION > 0
+#define FLEX_BETA
+#endif
+
+/* First, we deal with  platform-specific or compiler-specific issues. */
 
+/* begin standard C headers. */
 #include <stdio.h>
-#include <unistd.h>
+#include <string.h>
+#include <errno.h>
+#include <stdlib.h>
 
+/* end standard C headers. */
 
-/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
-#ifdef c_plusplus
-#ifndef __cplusplus
-#define __cplusplus
-#endif
+/* flex integer type definitions */
+
+#ifndef FLEXINT_H
+#define FLEXINT_H
+
+/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
+
+#if __STDC_VERSION__ >= 199901L
+
+/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
+ * if you want the limit (max/min) macros for int types. 
+ */
+#ifndef __STDC_LIMIT_MACROS
+#define __STDC_LIMIT_MACROS 1
 #endif
 
+#include <inttypes.h>
+typedef int8_t flex_int8_t;
+typedef uint8_t flex_uint8_t;
+typedef int16_t flex_int16_t;
+typedef uint16_t flex_uint16_t;
+typedef int32_t flex_int32_t;
+typedef uint32_t flex_uint32_t;
+#else
+typedef signed char flex_int8_t;
+typedef short int flex_int16_t;
+typedef int flex_int32_t;
+typedef unsigned char flex_uint8_t; 
+typedef unsigned short int flex_uint16_t;
+typedef unsigned int flex_uint32_t;
+#endif /* ! C99 */
 
-#ifdef __cplusplus
+/* Limits of integral types. */
+#ifndef INT8_MIN
+#define INT8_MIN               (-128)
+#endif
+#ifndef INT16_MIN
+#define INT16_MIN              (-32767-1)
+#endif
+#ifndef INT32_MIN
+#define INT32_MIN              (-2147483647-1)
+#endif
+#ifndef INT8_MAX
+#define INT8_MAX               (127)
+#endif
+#ifndef INT16_MAX
+#define INT16_MAX              (32767)
+#endif
+#ifndef INT32_MAX
+#define INT32_MAX              (2147483647)
+#endif
+#ifndef UINT8_MAX
+#define UINT8_MAX              (255U)
+#endif
+#ifndef UINT16_MAX
+#define UINT16_MAX             (65535U)
+#endif
+#ifndef UINT32_MAX
+#define UINT32_MAX             (4294967295U)
+#endif
 
-#include <stdlib.h>
+#endif /* ! FLEXINT_H */
 
-/* Use prototypes in function declarations. */
-#define YY_USE_PROTOS
+#ifdef __cplusplus
 
 /* The "const" storage-class-modifier is valid. */
 #define YY_USE_CONST
@@ -53,34 +126,17 @@
 
 #if __STDC__
 
-#define YY_USE_PROTOS
 #define YY_USE_CONST
 
 #endif	/* __STDC__ */
 #endif	/* ! __cplusplus */
 
-#ifdef __TURBOC__
- #pragma warn -rch
- #pragma warn -use
-#include <io.h>
-#include <stdlib.h>
-#define YY_USE_CONST
-#define YY_USE_PROTOS
-#endif
-
 #ifdef YY_USE_CONST
 #define yyconst const
 #else
 #define yyconst
 #endif
 
-
-#ifdef YY_USE_PROTOS
-#define YY_PROTO(proto) proto
-#else
-#define YY_PROTO(proto) ()
-#endif
-
 /* Returned upon end-of-file. */
 #define YY_NULL 0
 
@@ -95,80 +151,88 @@
  * but we do it the disgusting crufty way forced on us by the ()-less
  * definition of BEGIN.
  */
-#define BEGIN yy_start = 1 + 2 *
+#define BEGIN (yy_start) = 1 + 2 *
 
 /* Translate the current start state into a value that can be later handed
  * to BEGIN to return to the state.  The YYSTATE alias is for lex
  * compatibility.
  */
-#define YY_START ((yy_start - 1) / 2)
+#define YY_START (((yy_start) - 1) / 2)
 #define YYSTATE YY_START
 
 /* Action number for EOF rule of a given start state. */
 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
 
 /* Special action meaning "start processing a new file". */
-#define YY_NEW_FILE yyrestart( yyin )
+#define YY_NEW_FILE ldrestart(ldin  )
 
 #define YY_END_OF_BUFFER_CHAR 0
 
 /* Size of default input buffer. */
+#ifndef YY_BUF_SIZE
 #define YY_BUF_SIZE 16384
+#endif
 
+/* The state buf must be large enough to hold one state per character in the main buffer.
+ */
+#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
+
+#ifndef YY_TYPEDEF_YY_BUFFER_STATE
+#define YY_TYPEDEF_YY_BUFFER_STATE
 typedef struct yy_buffer_state *YY_BUFFER_STATE;
+#endif
 
-extern int yyleng;
-extern FILE *yyin, *yyout;
+extern int ldleng;
+
+extern FILE *ldin, *ldout;
 
 #define EOB_ACT_CONTINUE_SCAN 0
 #define EOB_ACT_END_OF_FILE 1
 #define EOB_ACT_LAST_MATCH 2
 
-/* The funky do-while in the following #define is used to turn the definition
- * int a single C statement (which needs a semi-colon terminator).  This
- * avoids problems with code like:
- *
- * 	if ( condition_holds )
- *		yyless( 5 );
- *	else
- *		do_something_else();
- *
- * Prior to using the do-while the compiler would get upset at the
- * "else" because it interpreted the "if" statement as being all
- * done when it reached the ';' after the yyless() call.
- */
-
-/* Return all but the first 'n' matched characters back to the input stream. */
-
+    /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
+     *       access to the local variable yy_act. Since yyless() is a macro, it would break
+     *       existing scanners that call yyless() from OUTSIDE ldlex. 
+     *       One obvious solution it to make yy_act a global. I tried that, and saw
+     *       a 5% performance hit in a non-ldlineno scanner, because yy_act is
+     *       normally declared as a register variable-- so it is not worth it.
+     */
+    #define  YY_LESS_LINENO(n) \
+            do { \
+                int yyl;\
+                for ( yyl = n; yyl < ldleng; ++yyl )\
+                    if ( ldtext[yyl] == '\n' )\
+                        --ldlineno;\
+            }while(0)
+    
+/* Return all but the first "n" matched characters back to the input stream. */
 #define yyless(n) \
 	do \
 		{ \
-		/* Undo effects of setting up yytext. */ \
-		*yy_cp = yy_hold_char; \
+		/* Undo effects of setting up ldtext. */ \
+        int yyless_macro_arg = (n); \
+        YY_LESS_LINENO(yyless_macro_arg);\
+		*yy_cp = (yy_hold_char); \
 		YY_RESTORE_YY_MORE_OFFSET \
-		yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
-		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
+		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
+		YY_DO_BEFORE_ACTION; /* set up ldtext again */ \
 		} \
 	while ( 0 )
 
-#define unput(c) yyunput( c, yytext_ptr )
-
-/* Some routines like yy_flex_realloc() are emitted as static but are
-   not called by all lexers. This generates warnings in some compilers,
-   notably GCC. Arrange to suppress these. */
-#ifdef __GNUC__
-#define YY_MAY_BE_UNUSED __attribute__((unused))
-#else
-#define YY_MAY_BE_UNUSED
-#endif
+#define unput(c) yyunput( c, (yytext_ptr)  )
 
 /* The following is because we cannot portably get our hands on size_t
  * (without autoconf's help, which isn't available because we want
  * flex-generated scanners to compile on their own).
  */
-typedef unsigned int yy_size_t;
 
+#ifndef YY_TYPEDEF_YY_SIZE_T
+#define YY_TYPEDEF_YY_SIZE_T
+typedef unsigned int yy_size_t;
+#endif
 
+#ifndef YY_STRUCT_YY_BUFFER_STATE
+#define YY_STRUCT_YY_BUFFER_STATE
 struct yy_buffer_state
 	{
 	FILE *yy_input_file;
@@ -205,12 +269,16 @@
 	 */
 	int yy_at_bol;
 
+    int yy_bs_lineno; /**< The line count. */
+    int yy_bs_column; /**< The column count. */
+    
 	/* Whether to try to fill the input buffer when we reach the
 	 * end of it.
 	 */
 	int yy_fill_buffer;
 
 	int yy_buffer_status;
+
 #define YY_BUFFER_NEW 0
 #define YY_BUFFER_NORMAL 1
 	/* When an EOF's been seen but there's still some text to process
@@ -220,180 +288,166 @@
 	 * possible backing-up.
 	 *
 	 * When we actually see the EOF, we change the status to "new"
-	 * (via yyrestart()), so that the user can continue scanning by
-	 * just pointing yyin at a new input file.
+	 * (via ldrestart()), so that the user can continue scanning by
+	 * just pointing ldin at a new input file.
 	 */
 #define YY_BUFFER_EOF_PENDING 2
+
 	};
+#endif /* !YY_STRUCT_YY_BUFFER_STATE */
 
-static YY_BUFFER_STATE yy_current_buffer = 0;
+/* Stack of input buffers. */
+static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
+static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
+static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
 
 /* We provide macros for accessing buffer states in case in the
  * future we want to put the buffer states in a more general
  * "scanner state".
+ *
+ * Returns the top of the stack, or NULL.
  */
-#define YY_CURRENT_BUFFER yy_current_buffer
+#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
+                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
+                          : NULL)
 
+/* Same as previous macro, but useful when we know that the buffer stack is not
+ * NULL or when we need an lvalue. For internal use only.
+ */
+#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
 
-/* yy_hold_char holds the character lost when yytext is formed. */
+/* yy_hold_char holds the character lost when ldtext is formed. */
 static char yy_hold_char;
-
 static int yy_n_chars;		/* number of characters read into yy_ch_buf */
-
-
-int yyleng;
+int ldleng;
 
 /* Points to current character in buffer. */
 static char *yy_c_buf_p = (char *) 0;
-static int yy_init = 1;		/* whether we need to initialize */
+static int yy_init = 0;		/* whether we need to initialize */
 static int yy_start = 0;	/* start state number */
 
-/* Flag which is used to allow yywrap()'s to do buffer switches
- * instead of setting up a fresh yyin.  A bit of a hack ...
+/* Flag which is used to allow ldwrap()'s to do buffer switches
+ * instead of setting up a fresh ldin.  A bit of a hack ...
  */
 static int yy_did_buffer_switch_on_eof;
 
-void yyrestart YY_PROTO(( FILE *input_file ));
+void ldrestart (FILE *input_file  );
+void ld_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
+YY_BUFFER_STATE ld_create_buffer (FILE *file,int size  );
+void ld_delete_buffer (YY_BUFFER_STATE b  );
+void ld_flush_buffer (YY_BUFFER_STATE b  );
+void ldpush_buffer_state (YY_BUFFER_STATE new_buffer  );
+void ldpop_buffer_state (void );
+
+static void ldensure_buffer_stack (void );
+static void ld_load_buffer_state (void );
+static void ld_init_buffer (YY_BUFFER_STATE b,FILE *file  );
+
+#define YY_FLUSH_BUFFER ld_flush_buffer(YY_CURRENT_BUFFER )
+
+YY_BUFFER_STATE ld_scan_buffer (char *base,yy_size_t size  );
+YY_BUFFER_STATE ld_scan_string (yyconst char *yy_str  );
+YY_BUFFER_STATE ld_scan_bytes (yyconst char *bytes,int len  );
+
+void *ldalloc (yy_size_t  );
+void *ldrealloc (void *,yy_size_t  );
+void ldfree (void *  );
 
-void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
-void yy_load_buffer_state YY_PROTO(( void ));
-YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
-void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
-void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
-void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
-#define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
-
-YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
-YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
-YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
-
-static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
-static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t )) YY_MAY_BE_UNUSED;
-static void yy_flex_free YY_PROTO(( void * ));
-
-#define yy_new_buffer yy_create_buffer
+#define yy_new_buffer ld_create_buffer
 
 #define yy_set_interactive(is_interactive) \
 	{ \
-	if ( ! yy_current_buffer ) \
-		yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
-	yy_current_buffer->yy_is_interactive = is_interactive; \
+	if ( ! YY_CURRENT_BUFFER ){ \
+        ldensure_buffer_stack (); \
+		YY_CURRENT_BUFFER_LVALUE =    \
+            ld_create_buffer(ldin,YY_BUF_SIZE ); \
+	} \
+	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
 	}
 
 #define yy_set_bol(at_bol) \
 	{ \
-	if ( ! yy_current_buffer ) \
-		yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
-	yy_current_buffer->yy_at_bol = at_bol; \
+	if ( ! YY_CURRENT_BUFFER ){\
+        ldensure_buffer_stack (); \
+		YY_CURRENT_BUFFER_LVALUE =    \
+            ld_create_buffer(ldin,YY_BUF_SIZE ); \
+	} \
+	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
 	}
 
-#define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
-
+#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
 
-#define YY_USES_REJECT
+/* Begin user sect3 */
 
-#define yywrap() 1
+#define ldwrap(n) 1
 #define YY_SKIP_YYWRAP
+
 typedef unsigned char YY_CHAR;
-FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
+
+FILE *ldin = (FILE *) 0, *ldout = (FILE *) 0;
+
 typedef int yy_state_type;
-extern int yylineno;
-int yylineno = 1;
-extern char *yytext;
-#define yytext_ptr yytext
-
-static yy_state_type yy_get_previous_state YY_PROTO(( void ));
-static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
-static int yy_get_next_buffer YY_PROTO(( void ));
-static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
+
+extern int ldlineno;
+
+int ldlineno = 1;
+
+extern char *ldtext;
+#define yytext_ptr ldtext
+
+static yy_state_type yy_get_previous_state (void );
+static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
+static int yy_get_next_buffer (void );
+static void yy_fatal_error (yyconst char msg[]  );
 
 /* Done after the current pattern has been matched and before the
- * corresponding action - sets up yytext.
+ * corresponding action - sets up ldtext.
  */
 #define YY_DO_BEFORE_ACTION \
-	yytext_ptr = yy_bp; \
-	yyleng = (int) (yy_cp - yy_bp); \
-	yy_hold_char = *yy_cp; \
+	(yytext_ptr) = yy_bp; \
+	ldleng = (size_t) (yy_cp - yy_bp); \
+	(yy_hold_char) = *yy_cp; \
 	*yy_cp = '\0'; \
-	yy_c_buf_p = yy_cp;
+	(yy_c_buf_p) = yy_cp;
 
 #define YY_NUM_RULES 50
 #define YY_END_OF_BUFFER 51
-static yyconst short int yy_acclist[390] =
-    {   0,
-       51,   49,   50,   48,   49,   50,   48,   50,   41,   49,
-       50,   42,   49,   50,   32,   49,   50,   33,   49,   50,
-       39,   46,   49,   50,   37,   49,   50,   44,   49,   50,
-       38,   49,   50,   46,   49,   50,   40,   49,   50,   45,
-       46,   49,   50,   45,   46,   49,   50,   34,   49,   50,
-       35,   49,   50,   36,   49,   50,   46,   49,   50,   46,
-       49,   50,   46,   49,   50,   46,   49,   50,   46,   49,
-       50,   46,   49,   50,   46,   49,   50,   46,   49,   50,
-       46,   49,   50,   46,   49,   50,   49,   50,   49,   50,
-       46,   49,   50,   46,   49,   50,   30,   49,   50,   43,
-
-       49,   50,   31,   49,   50,   49,   50,    9,   50,    9,
-       50,   48,   46,   47,   46,   47,   10,   47,   45,   46,
-       47,   45,   46,   47,   45,   46,   47,   46,   47,   45,
-       46,   47,   46,   47,   46,   47,   46,   47,   46,   47,
-       46,   47,   46,   47,   46,   47,   46,   47,   46,   47,
-       46,   47,   46,   47,   46,   47,   46,   47,   46,   47,
-       29,   46,   47,   46,   47,   45,   46,   47,   46,   47,
-       46,   47,   46,   47,   46,   47,   46,   47,   46,   47,
-       46,   47,   46,   47,   46,   47,   46,   47,   46,   47,
-       46,   47,   46,   47,   46,   47,   46,   47,   46,   47,
-
-       46,   47,   46,   47,   45,   46,   47,   46,   47,   46,
-       47,   46,   47,   46,   47,   46,   47,   46,   47,   46,
-       47,   19,   46,   47,   46,   47,   46,   47,   46,   47,
-       46,   47,   46,   47,   46,   47,   27,   46,   47,   46,
-       47,   46,   47,   46,   47,   11,   46,   47,   46,   47,
-       13,   46,   47,   46,   47,   16,   46,   47,   17,   46,
-       47,   46,   47,   46,   47,   46,   47,   46,   47,   46,
-       47,   46,   47,   46,   47,   46,   47,   46,   47,   46,
-       47,   46,   47,   46,   47,   18,   46,   47,   46,   47,
-       46,   47,   46,   47,   46,   47,   46,   47,   46,   47,
-
-       46,   47,   46,   47,   20,    2,    6,   46,   47,   46,
-       47,   46,   47,   46,   47,   23,   46,   47,   46,   47,
-       25,   46,   47,   46,   47,   28,   46,   47,   15,    4,
-        1,    8,    5,   46,   47,   46,   47,   46,   47,   22,
-       46,   47,   46,   47,   46,   47,   12,   46,   47,   46,
-       47,   46,   47,   46,   47,   46,   47,    3,    7,   46,
-       47,   46,   47,   24,   46,   47,   46,   47,   46,   47,
-       46,   47,   46,   47,   14,   46,   47,   46,   47,   46,
-       47,   21,   46,   47,   46,   47,   26,   46,   47
-    } ;
-
-static yyconst short int yy_accept[220] =
+/* This struct is not used in this scanner,
+   but its presence is necessary. */
+struct yy_trans_info
+	{
+	flex_int32_t yy_verify;
+	flex_int32_t yy_nxt;
+	};
+static yyconst flex_int16_t yy_accept[219] =
     {   0,
-        1,    1,    1,    1,    1,    2,    4,    7,    9,   12,
-       15,   18,   21,   25,   28,   31,   34,   37,   40,   44,
-       48,   51,   54,   57,   60,   63,   66,   69,   72,   75,
-       78,   81,   84,   87,   89,   91,   94,   97,  100,  103,
-      106,  108,  110,  112,  113,  114,  115,  117,  119,  122,
-      125,  128,  130,  133,  135,  137,  139,  141,  143,  145,
-      147,  149,  151,  153,  155,  157,  159,  161,  161,  162,
-      164,  166,  166,  166,  166,  166,  169,  171,  173,  175,
-      177,  179,  181,  183,  185,  187,  189,  191,  193,  195,
-      197,  199,  201,  201,  203,  205,  205,  205,  205,  205,
-
-      205,  205,  208,  210,  212,  214,  216,  218,  220,  222,
-      225,  227,  229,  231,  233,  235,  237,  240,  242,  242,
-      244,  246,  246,  246,  246,  246,  246,  246,  246,  246,
-      249,  251,  254,  256,  259,  262,  264,  266,  268,  270,
-      272,  274,  276,  278,  280,  282,  282,  282,  282,  282,
-      282,  282,  282,  282,  284,  286,  289,  291,  293,  295,
-      297,  299,  301,  303,  305,  306,  306,  307,  307,  307,
-      307,  308,  308,  308,  310,  312,  314,  316,  319,  321,
-      324,  326,  329,  330,  330,  331,  332,  332,  333,  334,
-      336,  338,  340,  343,  345,  347,  347,  347,  350,  352,
+        0,    0,    0,    0,   51,   49,   48,   48,   41,   42,
+       32,   33,   39,   37,   44,   38,   46,   40,   45,   45,
+       34,   35,   36,   46,   46,   46,   46,   46,   46,   46,
+       46,   46,   46,   49,   49,   46,   46,   30,   43,   31,
+       49,    9,    9,   48,   46,   47,   46,   10,   45,   45,
+       45,   46,   45,   46,   46,   46,   46,   46,   46,   46,
+       46,   46,   46,   46,   46,   46,   46,    0,   29,   46,
+       46,    0,    0,    0,    0,   45,   46,   46,   46,   46,
+       46,   46,   46,   46,   46,   46,   46,   46,   46,   46,
+       46,   46,    0,   46,   46,    0,    0,    0,    0,    0,
+
+        0,   45,   46,   46,   46,   46,   46,   46,   46,   19,
+       46,   46,   46,   46,   46,   46,   27,   46,    0,   46,
+       46,    0,    0,    0,    0,    0,    0,    0,    0,   11,
+       46,   13,   46,   16,   17,   46,   46,   46,   46,   46,
+       46,   46,   46,   46,   46,    0,    0,    0,    0,    0,
+        0,    0,    0,   46,   46,   18,   46,   46,   46,   46,
+       46,   46,   46,   46,   20,    0,    2,    0,    0,    0,
+        6,    0,    0,   46,   46,   46,   46,   23,   46,   25,
+       46,   28,   15,    0,    4,    1,    0,    8,    5,   46,
+       46,   46,   22,   46,   46,    0,    0,   12,   46,   46,
 
-      354,  356,  358,  359,  360,  362,  364,  367,  369,  371,
-      373,  375,  378,  380,  382,  385,  387,  390,  390
+       46,   46,    3,    7,   46,   46,   24,   46,   46,   46,
+       46,   14,   46,   46,   21,   46,   26,    0
     } ;
 
-static yyconst int yy_ec[256] =
+static yyconst flex_int32_t yy_ec[256] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
         2,    2,    2,    1,    1,    1,    1,    1,    1,    1,
@@ -425,7 +479,7 @@
         1,    1,    1,    1,    1
     } ;
 
-static yyconst int yy_meta[67] =
+static yyconst flex_int32_t yy_meta[67] =
     {   0,
         1,    2,    2,    1,    1,    1,    2,    2,    3,    1,
         1,    1,    3,    1,    3,    3,    3,    2,    2,    1,
@@ -436,7 +490,7 @@
         3,    3,    3,    2,    1,    2
     } ;
 
-static yyconst short int yy_base[223] =
+static yyconst flex_int16_t yy_base[223] =
     {   0,
         0,  224,    0,  219,  221, 2250,   65,   67, 2250, 2250,
      2250, 2250,    0, 2250, 2250, 2250,   70,  211,  135,   62,
@@ -465,7 +519,7 @@
      2243, 2246
     } ;
 
-static yyconst short int yy_def[223] =
+static yyconst flex_int16_t yy_def[223] =
     {   0,
       218,    1,  219,  219,  218,  218,  218,  218,  218,  218,
       218,  218,  220,  218,  218,  218,  221,  222,  221,   19,
@@ -494,7 +548,7 @@
       218,  218
     } ;
 
-static yyconst short int yy_nxt[2317] =
+static yyconst flex_int16_t yy_nxt[2317] =
     {   0,
         6,    7,    8,    6,    9,   10,   11,   12,   13,   14,
        15,   16,   17,   18,   19,   20,   20,   21,   22,   23,
@@ -753,7 +807,7 @@
       218,  218,  218,  218,  218,  218
     } ;
 
-static yyconst short int yy_chk[2317] =
+static yyconst flex_int16_t yy_chk[2317] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -1012,23 +1066,29 @@
       218,  218,  218,  218,  218,  218
     } ;
 
-static yy_state_type yy_state_buf[YY_BUF_SIZE + 2], *yy_state_ptr;
-static char *yy_full_match;
-static int yy_lp;
-#define REJECT \
-{ \
-*yy_cp = yy_hold_char; /* undo effects of setting up yytext */ \
-yy_cp = yy_full_match; /* restore poss. backed-over text */ \
-++yy_lp; \
-goto find_rule; \
-}
+/* Table of booleans, true if rule could match eol. */
+static yyconst flex_int32_t yy_rule_can_match_eol[51] =
+    {   0,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,     };
+
+static yy_state_type yy_last_accepting_state;
+static char *yy_last_accepting_cpos;
+
+extern int ld_flex_debug;
+int ld_flex_debug = 0;
+
+/* The intent behind this definition is that it'll catch
+ * any uses of REJECT which flex missed.
+ */
+#define REJECT reject_used_but_not_detected
 #define yymore() yymore_used_but_not_detected
 #define YY_MORE_ADJ 0
 #define YY_RESTORE_YY_MORE_OFFSET
-char *yytext;
-#line 1 "../../../redhat/stock-elfutils/src/ldlex.l"
-#define INITIAL 0
-#line 2 "../../../redhat/stock-elfutils/src/ldlex.l"
+char *ldtext;
+#line 1 "ldlex.l"
+#line 2 "ldlex.l"
 /* Copyright (C) 2001, 2002, 2003, 2004, 2005 Red Hat, Inc.
    This file is part of Red Hat elfutils.
    Written by Ulrich Drepper <drepper@redhat.com>, 2001.
@@ -1086,7 +1146,7 @@
 /* ECHO must be redefined since the default implementation ignores
    the return value of fwrite_unlocked.  */
 #define ECHO do { size_t n__ __attribute__ ((unused)) \
-			   = fwrite (yytext, yyleng, 1, yyout); } while (0)
+			   = fwrite (ldtext, ldleng, 1, ldout); } while (0)
 
 /* Defined in ld.c.  */
 extern int ld_scan_version_script;
@@ -1107,10 +1167,25 @@
 static int pop_state (void);
 static int handle_ifdef (void);
 static void invalid_char (int ch);
-#define YY_NEVER_INTERACTIVE 1
+
+#line 1161 "ldlex.c"
+
+#define INITIAL 0
 #define IGNORE 1
 
-#line 1114 "ldlex.c"
+#ifndef YY_NO_UNISTD_H
+/* Special case for "unistd.h", since it is non-ANSI. We include it way
+ * down here because we want the user's section 1 to have been scanned first.
+ * The user has a chance to override it with an option.
+ */
+#include <unistd.h>
+#endif
+
+#ifndef YY_EXTRA_TYPE
+#define YY_EXTRA_TYPE void *
+#endif
+
+static int yy_init_globals (void );
 
 /* Macros after this point can all be overridden by user definitions in
  * section 1.
@@ -1118,65 +1193,30 @@
 
 #ifndef YY_SKIP_YYWRAP
 #ifdef __cplusplus
-extern "C" int yywrap YY_PROTO(( void ));
+extern "C" int ldwrap (void );
 #else
-extern int yywrap YY_PROTO(( void ));
-#endif
+extern int ldwrap (void );
 #endif
-
-#ifndef YY_NO_UNPUT
-static void yyunput YY_PROTO(( int c, char *buf_ptr ));
 #endif
 
+    static void yyunput (int c,char *buf_ptr  );
+    
 #ifndef yytext_ptr
-static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
+static void yy_flex_strncpy (char *,yyconst char *,int );
 #endif
 
 #ifdef YY_NEED_STRLEN
-static int yy_flex_strlen YY_PROTO(( yyconst char * ));
+static int yy_flex_strlen (yyconst char * );
 #endif
 
 #ifndef YY_NO_INPUT
-#ifdef __cplusplus
-static int yyinput YY_PROTO(( void ));
-#else
-static int input YY_PROTO(( void ));
-#endif
-#endif
-
-#if YY_STACK_USED
-static int yy_start_stack_ptr = 0;
-static int yy_start_stack_depth = 0;
-static int *yy_start_stack = 0;
-#ifndef YY_NO_PUSH_STATE
-static void yy_push_state YY_PROTO(( int new_state ));
-#endif
-#ifndef YY_NO_POP_STATE
-static void yy_pop_state YY_PROTO(( void ));
-#endif
-#ifndef YY_NO_TOP_STATE
-static int yy_top_state YY_PROTO(( void ));
-#endif
 
+#ifdef __cplusplus
+static int yyinput (void );
 #else
-#define YY_NO_PUSH_STATE 1
-#define YY_NO_POP_STATE 1
-#define YY_NO_TOP_STATE 1
+static int input (void );
 #endif
 
-#ifdef YY_MALLOC_DECL
-YY_MALLOC_DECL
-#else
-#if __STDC__
-#ifndef __cplusplus
-#include <stdlib.h>
-#endif
-#else
-/* Just try to get by without declaring the routines.  This will fail
- * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
- * or sizeof(void*) != sizeof(int).
- */
-#endif
 #endif
 
 /* Amount of stuff to slurp up with each read. */
@@ -1185,12 +1225,11 @@
 #endif
 
 /* Copy whatever the last rule matched to the standard output. */
-
 #ifndef ECHO
 /* This used to be an fputs(), but since the string might contain NUL's,
  * we now use fwrite().
  */
-#define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
+#define ECHO (void) fwrite( ldtext, ldleng, 1, ldout )
 #endif
 
 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
@@ -1198,21 +1237,35 @@
  */
 #ifndef YY_INPUT
 #define YY_INPUT(buf,result,max_size) \
-	if ( yy_current_buffer->yy_is_interactive ) \
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
 		{ \
-		int c = '*', n; \
+		int c = '*'; \
+		size_t n; \
 		for ( n = 0; n < max_size && \
-			     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
+			     (c = getc( ldin )) != EOF && c != '\n'; ++n ) \
 			buf[n] = (char) c; \
 		if ( c == '\n' ) \
 			buf[n++] = (char) c; \
-		if ( c == EOF && ferror( yyin ) ) \
+		if ( c == EOF && ferror( ldin ) ) \
 			YY_FATAL_ERROR( "input in flex scanner failed" ); \
 		result = n; \
 		} \
-	else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
-		  && ferror( yyin ) ) \
-		YY_FATAL_ERROR( "input in flex scanner failed" );
+	else \
+		{ \
+		errno=0; \
+		while ( (result = fread(buf, 1, max_size, ldin))==0 && ferror(ldin)) \
+			{ \
+			if( errno != EINTR) \
+				{ \
+				YY_FATAL_ERROR( "input in flex scanner failed" ); \
+				break; \
+				} \
+			errno=0; \
+			clearerr(ldin); \
+			} \
+		}\
+\
+
 #endif
 
 /* No semi-colon after return; correct usage is to write "yyterminate();" -
@@ -1233,14 +1286,20 @@
 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
 #endif
 
+/* end tables serialization structures and prototypes */
+
 /* Default declaration of generated scanner - a define so the user can
  * easily add parameters.
  */
 #ifndef YY_DECL
-#define YY_DECL int yylex YY_PROTO(( void ))
-#endif
+#define YY_DECL_IS_OURS 1
 
-/* Code executed at the beginning of each rule, after yytext and yyleng
+extern int ldlex (void);
+
+#define YY_DECL int ldlex (void)
+#endif /* !YY_DECL */
+
+/* Code executed at the beginning of each rule, after ldtext and ldleng
  * have been set up.
  */
 #ifndef YY_USER_ACTION
@@ -1253,18 +1312,20 @@
 #endif
 
 #define YY_RULE_SETUP \
-	if ( yyleng > 0 ) \
-		yy_current_buffer->yy_at_bol = \
-				(yytext[yyleng - 1] == '\n'); \
+	if ( ldleng > 0 ) \
+		YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
+				(ldtext[ldleng - 1] == '\n'); \
 	YY_USER_ACTION
 
+/** The main scanner function which does all the work.
+ */
 YY_DECL
-	{
+{
 	register yy_state_type yy_current_state;
-	register char *yy_cp = NULL, *yy_bp = NULL;
+	register char *yy_cp, *yy_bp;
 	register int yy_act;
-
-#line 96 "../../../redhat/stock-elfutils/src/ldlex.l"
+    
+#line 96 "ldlex.l"
 
 				if (unlikely (ld_scan_version_script))
 				  {
@@ -1272,52 +1333,57 @@
 				    return kVERSION_SCRIPT;
 				  }
 
-#line 1276 "ldlex.c"
+#line 1326 "ldlex.c"
 
-	if ( yy_init )
+	if ( !(yy_init) )
 		{
-		yy_init = 0;
+		(yy_init) = 1;
 
 #ifdef YY_USER_INIT
 		YY_USER_INIT;
 #endif
 
-		if ( ! yy_start )
-			yy_start = 1;	/* first start state */
+		if ( ! (yy_start) )
+			(yy_start) = 1;	/* first start state */
 
-		if ( ! yyin )
-			yyin = stdin;
+		if ( ! ldin )
+			ldin = stdin;
 
-		if ( ! yyout )
-			yyout = stdout;
+		if ( ! ldout )
+			ldout = stdout;
 
-		if ( ! yy_current_buffer )
-			yy_current_buffer =
-				yy_create_buffer( yyin, YY_BUF_SIZE );
+		if ( ! YY_CURRENT_BUFFER ) {
+			ldensure_buffer_stack ();
+			YY_CURRENT_BUFFER_LVALUE =
+				ld_create_buffer(ldin,YY_BUF_SIZE );
+		}
 
-		yy_load_buffer_state();
+		ld_load_buffer_state( );
 		}
 
 	while ( 1 )		/* loops until end-of-file is reached */
 		{
-		yy_cp = yy_c_buf_p;
+		yy_cp = (yy_c_buf_p);
 
-		/* Support of yytext. */
-		*yy_cp = yy_hold_char;
+		/* Support of ldtext. */
+		*yy_cp = (yy_hold_char);
 
 		/* yy_bp points to the position in yy_ch_buf of the start of
 		 * the current run.
 		 */
 		yy_bp = yy_cp;
 
-		yy_current_state = yy_start;
+		yy_current_state = (yy_start);
 		yy_current_state += YY_AT_BOL();
-		yy_state_ptr = yy_state_buf;
-		*yy_state_ptr++ = yy_current_state;
 yy_match:
 		do
 			{
 			register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
+			if ( yy_accept[yy_current_state] )
+				{
+				(yy_last_accepting_state) = yy_current_state;
+				(yy_last_accepting_cpos) = yy_cp;
+				}
 			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 				{
 				yy_current_state = (int) yy_def[yy_current_state];
@@ -1325,96 +1391,95 @@
 					yy_c = yy_meta[(unsigned int) yy_c];
 				}
 			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-			*yy_state_ptr++ = yy_current_state;
 			++yy_cp;
 			}
-		while ( yy_base[yy_current_state] != 2250 );
+		while ( yy_current_state != 218 );
+		yy_cp = (yy_last_accepting_cpos);
+		yy_current_state = (yy_last_accepting_state);
 
 yy_find_action:
-		yy_current_state = *--yy_state_ptr;
-		yy_lp = yy_accept[yy_current_state];
-find_rule: /* we branch to this label when backing up */
-		for ( ; ; ) /* until we find what rule we matched */
-			{
-			if ( yy_lp && yy_lp < yy_accept[yy_current_state + 1] )
-				{
-				yy_act = yy_acclist[yy_lp];
-					{
-					yy_full_match = yy_cp;
-					break;
-					}
-				}
-			--yy_cp;
-			yy_current_state = *--yy_state_ptr;
-			yy_lp = yy_accept[yy_current_state];
-			}
+		yy_act = yy_accept[yy_current_state];
 
 		YY_DO_BEFORE_ACTION;
 
-		if ( yy_act != YY_END_OF_BUFFER )
+		if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
 			{
 			int yyl;
-			for ( yyl = 0; yyl < yyleng; ++yyl )
-				if ( yytext[yyl] == '\n' )
-					++yylineno;
+			for ( yyl = 0; yyl < ldleng; ++yyl )
+				if ( ldtext[yyl] == '\n' )
+					   
+    ldlineno++;
+;
 			}
 
 do_action:	/* This label is used only to access EOF actions. */
 
-
 		switch ( yy_act )
 	{ /* beginning of action switch */
+			case 0: /* must back up */
+			/* undo the effects of YY_DO_BEFORE_ACTION */
+			*yy_cp = (yy_hold_char);
+			yy_cp = (yy_last_accepting_cpos);
+			yy_current_state = (yy_last_accepting_state);
+			goto yy_find_action;
+
 case 1:
-*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
-yy_c_buf_p = yy_cp = yy_bp + 6;
-YY_DO_BEFORE_ACTION; /* set up yytext again */
+/* rule 1 can match eol */
+*yy_cp = (yy_hold_char); /* undo effects of setting up ldtext */
+(yy_c_buf_p) = yy_cp = yy_bp + 6;
+YY_DO_BEFORE_ACTION; /* set up ldtext again */
 YY_RULE_SETUP
-#line 103 "../../../redhat/stock-elfutils/src/ldlex.l"
+#line 103 "ldlex.l"
 { BEGIN (handle_ifdef ()); }
 	YY_BREAK
 case 2:
-*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
-yy_c_buf_p = yy_cp = yy_bp + 5;
-YY_DO_BEFORE_ACTION; /* set up yytext again */
+/* rule 2 can match eol */
+*yy_cp = (yy_hold_char); /* undo effects of setting up ldtext */
+(yy_c_buf_p) = yy_cp = yy_bp + 5;
+YY_DO_BEFORE_ACTION; /* set up ldtext again */
 YY_RULE_SETUP
-#line 104 "../../../redhat/stock-elfutils/src/ldlex.l"
+#line 104 "ldlex.l"
 { eat_to_eol (true);
 				  push_state (skip_to_endif);
 				  BEGIN (IGNORE); }
 	YY_BREAK
 case 3:
-*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
-yy_c_buf_p = yy_cp = yy_bp + 8;
-YY_DO_BEFORE_ACTION; /* set up yytext again */
+/* rule 3 can match eol */
+*yy_cp = (yy_hold_char); /* undo effects of setting up ldtext */
+(yy_c_buf_p) = yy_cp = yy_bp + 8;
+YY_DO_BEFORE_ACTION; /* set up ldtext again */
 YY_RULE_SETUP
-#line 107 "../../../redhat/stock-elfutils/src/ldlex.l"
+#line 107 "ldlex.l"
 { eat_to_eol (false);
 				  push_state (skip_to_endif);
 				  BEGIN (IGNORE); }
 	YY_BREAK
 case 4:
-*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
-yy_c_buf_p = yy_cp = yy_bp + 6;
-YY_DO_BEFORE_ACTION; /* set up yytext again */
+/* rule 4 can match eol */
+*yy_cp = (yy_hold_char); /* undo effects of setting up ldtext */
+(yy_c_buf_p) = yy_cp = yy_bp + 6;
+YY_DO_BEFORE_ACTION; /* set up ldtext again */
 YY_RULE_SETUP
-#line 110 "../../../redhat/stock-elfutils/src/ldlex.l"
+#line 110 "ldlex.l"
 { eat_to_eol (true) ; }
 	YY_BREAK
 case 5:
-*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
-yy_c_buf_p = yy_cp = yy_bp + 6;
-YY_DO_BEFORE_ACTION; /* set up yytext again */
+/* rule 5 can match eol */
+*yy_cp = (yy_hold_char); /* undo effects of setting up ldtext */
+(yy_c_buf_p) = yy_cp = yy_bp + 6;
+YY_DO_BEFORE_ACTION; /* set up ldtext again */
 YY_RULE_SETUP
-#line 112 "../../../redhat/stock-elfutils/src/ldlex.l"
+#line 112 "ldlex.l"
 { eat_to_eol (false);
 				  push_state (skip_to_endif); }
 	YY_BREAK
 case 6:
-*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
-yy_c_buf_p = yy_cp = yy_bp + 5;
-YY_DO_BEFORE_ACTION; /* set up yytext again */
+/* rule 6 can match eol */
+*yy_cp = (yy_hold_char); /* undo effects of setting up ldtext */
+(yy_c_buf_p) = yy_cp = yy_bp + 5;
+YY_DO_BEFORE_ACTION; /* set up ldtext again */
 YY_RULE_SETUP
-#line 114 "../../../redhat/stock-elfutils/src/ldlex.l"
+#line 114 "ldlex.l"
 { eat_to_eol (true);
 				  assert (prepdepth > 0);
 				  if (prepstate[prepdepth - 1] == skip_if)
@@ -1426,11 +1491,12 @@
 				}
 	YY_BREAK
 case 7:
-*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
-yy_c_buf_p = yy_cp = yy_bp + 8;
-YY_DO_BEFORE_ACTION; /* set up yytext again */
+/* rule 7 can match eol */
+*yy_cp = (yy_hold_char); /* undo effects of setting up ldtext */
+(yy_c_buf_p) = yy_cp = yy_bp + 8;
+YY_DO_BEFORE_ACTION; /* set up ldtext again */
 YY_RULE_SETUP
-#line 123 "../../../redhat/stock-elfutils/src/ldlex.l"
+#line 123 "ldlex.l"
 { assert (prepdepth > 0);
 				  if (prepstate[prepdepth - 1] == skip_if)
 				    {
@@ -1441,203 +1507,205 @@
 				}
 	YY_BREAK
 case 8:
-*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
-yy_c_buf_p = yy_cp = yy_bp + 6;
-YY_DO_BEFORE_ACTION; /* set up yytext again */
+/* rule 8 can match eol */
+*yy_cp = (yy_hold_char); /* undo effects of setting up ldtext */
+(yy_c_buf_p) = yy_cp = yy_bp + 6;
+YY_DO_BEFORE_ACTION; /* set up ldtext again */
 YY_RULE_SETUP
-#line 131 "../../../redhat/stock-elfutils/src/ldlex.l"
+#line 131 "ldlex.l"
 { eat_to_eol (true);
 				  BEGIN (pop_state ()); }
 	YY_BREAK
 case 9:
+/* rule 9 can match eol */
 YY_RULE_SETUP
-#line 133 "../../../redhat/stock-elfutils/src/ldlex.l"
+#line 133 "ldlex.l"
 { /* nothing */ }
 	YY_BREAK
 case 10:
 YY_RULE_SETUP
-#line 136 "../../../redhat/stock-elfutils/src/ldlex.l"
+#line 136 "ldlex.l"
 { eat_comment (); }
 	YY_BREAK
 case 11:
 YY_RULE_SETUP
-#line 138 "../../../redhat/stock-elfutils/src/ldlex.l"
+#line 138 "ldlex.l"
 { return kALIGN; }
 	YY_BREAK
 case 12:
 YY_RULE_SETUP
-#line 139 "../../../redhat/stock-elfutils/src/ldlex.l"
+#line 139 "ldlex.l"
 { return kAS_NEEDED; }
 	YY_BREAK
 case 13:
 YY_RULE_SETUP
-#line 140 "../../../redhat/stock-elfutils/src/ldlex.l"
+#line 140 "ldlex.l"
 { return kENTRY; }
 	YY_BREAK
 case 14:
 YY_RULE_SETUP
-#line 141 "../../../redhat/stock-elfutils/src/ldlex.l"
+#line 141 "ldlex.l"
 { return kEXCLUDE_FILE; }
 	YY_BREAK
 case 15:
 YY_RULE_SETUP
-#line 142 "../../../redhat/stock-elfutils/src/ldlex.l"
+#line 142 "ldlex.l"
 { return kGLOBAL; }
 	YY_BREAK
 case 16:
 YY_RULE_SETUP
-#line 143 "../../../redhat/stock-elfutils/src/ldlex.l"
+#line 143 "ldlex.l"
 { return kGROUP; }
 	YY_BREAK
 case 17:
 YY_RULE_SETUP
-#line 144 "../../../redhat/stock-elfutils/src/ldlex.l"
+#line 144 "ldlex.l"
 { return kINPUT; }
 	YY_BREAK
 case 18:
 YY_RULE_SETUP
-#line 145 "../../../redhat/stock-elfutils/src/ldlex.l"
+#line 145 "ldlex.l"
 { return kINTERP; }
 	YY_BREAK
 case 19:
 YY_RULE_SETUP
-#line 146 "../../../redhat/stock-elfutils/src/ldlex.l"
+#line 146 "ldlex.l"
 { return kKEEP; }
 	YY_BREAK
 case 20:
 YY_RULE_SETUP
-#line 147 "../../../redhat/stock-elfutils/src/ldlex.l"
+#line 147 "ldlex.l"
 { return kLOCAL; }
 	YY_BREAK
 case 21:
 YY_RULE_SETUP
-#line 148 "../../../redhat/stock-elfutils/src/ldlex.l"
+#line 148 "ldlex.l"
 { return kOUTPUT_FORMAT; }
 	YY_BREAK
 case 22:
 YY_RULE_SETUP
-#line 149 "../../../redhat/stock-elfutils/src/ldlex.l"
+#line 149 "ldlex.l"
 { return kPAGESIZE; }
 	YY_BREAK
 case 23:
 YY_RULE_SETUP
-#line 150 "../../../redhat/stock-elfutils/src/ldlex.l"
+#line 150 "ldlex.l"
 { return kPROVIDE; }
 	YY_BREAK
 case 24:
 YY_RULE_SETUP
-#line 151 "../../../redhat/stock-elfutils/src/ldlex.l"
+#line 151 "ldlex.l"
 { return kSEARCH_DIR; }
 	YY_BREAK
 case 25:
 YY_RULE_SETUP
-#line 152 "../../../redhat/stock-elfutils/src/ldlex.l"
+#line 152 "ldlex.l"
 { return kSEGMENT; }
 	YY_BREAK
 case 26:
 YY_RULE_SETUP
-#line 153 "../../../redhat/stock-elfutils/src/ldlex.l"
+#line 153 "ldlex.l"
 { return kSIZEOF_HEADERS; }
 	YY_BREAK
 case 27:
 YY_RULE_SETUP
-#line 154 "../../../redhat/stock-elfutils/src/ldlex.l"
+#line 154 "ldlex.l"
 { return kSORT; }
 	YY_BREAK
 case 28:
 YY_RULE_SETUP
-#line 155 "../../../redhat/stock-elfutils/src/ldlex.l"
+#line 155 "ldlex.l"
 { return kVERSION; }
 	YY_BREAK
 case 29:
 YY_RULE_SETUP
-#line 157 "../../../redhat/stock-elfutils/src/ldlex.l"
+#line 157 "ldlex.l"
 { int cnt = 1 ;
 				  ldlval.num = 0;
-				  while (cnt < yyleng - 1)
-				    ldlval.num |= attrib_convert (yytext[cnt++]);
+				  while (cnt < ldleng - 1)
+				    ldlval.num |= attrib_convert (ldtext[cnt++]);
 				  return kMODE; }
 	YY_BREAK
 case 30:
 YY_RULE_SETUP
-#line 163 "../../../redhat/stock-elfutils/src/ldlex.l"
+#line 163 "ldlex.l"
 { return '{'; }
 	YY_BREAK
 case 31:
 YY_RULE_SETUP
-#line 164 "../../../redhat/stock-elfutils/src/ldlex.l"
+#line 164 "ldlex.l"
 { return '}'; }
 	YY_BREAK
 case 32:
 YY_RULE_SETUP
-#line 165 "../../../redhat/stock-elfutils/src/ldlex.l"
+#line 165 "ldlex.l"
 { return '('; }
 	YY_BREAK
 case 33:
 YY_RULE_SETUP
-#line 166 "../../../redhat/stock-elfutils/src/ldlex.l"
+#line 166 "ldlex.l"
 { return ')'; }
 	YY_BREAK
 case 34:
 YY_RULE_SETUP
-#line 167 "../../../redhat/stock-elfutils/src/ldlex.l"
+#line 167 "ldlex.l"
 { return ':'; }
 	YY_BREAK
 case 35:
 YY_RULE_SETUP
-#line 168 "../../../redhat/stock-elfutils/src/ldlex.l"
+#line 168 "ldlex.l"
 { return ';'; }
 	YY_BREAK
 case 36:
 YY_RULE_SETUP
-#line 169 "../../../redhat/stock-elfutils/src/ldlex.l"
+#line 169 "ldlex.l"
 { return '='; }
 	YY_BREAK
 case 37:
 YY_RULE_SETUP
-#line 170 "../../../redhat/stock-elfutils/src/ldlex.l"
+#line 170 "ldlex.l"
 { ldlval.op = exp_plus; return kADD_OP; }
 	YY_BREAK
 case 38:
 YY_RULE_SETUP
-#line 171 "../../../redhat/stock-elfutils/src/ldlex.l"
+#line 171 "ldlex.l"
 { ldlval.op = exp_minus; return kADD_OP; }
 	YY_BREAK
 case 39:
 YY_RULE_SETUP
-#line 172 "../../../redhat/stock-elfutils/src/ldlex.l"
+#line 172 "ldlex.l"
 { return '*'; }
 	YY_BREAK
 case 40:
 YY_RULE_SETUP
-#line 173 "../../../redhat/stock-elfutils/src/ldlex.l"
+#line 173 "ldlex.l"
 { ldlval.op = exp_div; return kMUL_OP; }
 	YY_BREAK
 case 41:
 YY_RULE_SETUP
-#line 174 "../../../redhat/stock-elfutils/src/ldlex.l"
+#line 174 "ldlex.l"
 { ldlval.op = exp_mod; return kMUL_OP; }
 	YY_BREAK
 case 42:
 YY_RULE_SETUP
-#line 175 "../../../redhat/stock-elfutils/src/ldlex.l"
+#line 175 "ldlex.l"
 { return '&'; }
 	YY_BREAK
 case 43:
 YY_RULE_SETUP
-#line 176 "../../../redhat/stock-elfutils/src/ldlex.l"
+#line 176 "ldlex.l"
 { return '|'; }
 	YY_BREAK
 case 44:
 YY_RULE_SETUP
-#line 178 "../../../redhat/stock-elfutils/src/ldlex.l"
+#line 178 "ldlex.l"
 { return ','; }
 	YY_BREAK
 case 45:
 YY_RULE_SETUP
-#line 180 "../../../redhat/stock-elfutils/src/ldlex.l"
+#line 180 "ldlex.l"
 { char *endp;
-				  ldlval.num = strtoumax (yytext, &endp, 0);
+				  ldlval.num = strtoumax (ldtext, &endp, 0);
 				  if (*endp != '\0')
 				    {
 				      if (tolower (*endp) == 'k')
@@ -1652,61 +1720,62 @@
 	YY_BREAK
 case 46:
 YY_RULE_SETUP
-#line 194 "../../../redhat/stock-elfutils/src/ldlex.l"
+#line 194 "ldlex.l"
 { ldlval.str = obstack_strndup (&ld_state.smem,
-								yytext, yyleng);
+								ldtext, ldleng);
 				  return kID; }
 	YY_BREAK
 case 47:
 YY_RULE_SETUP
-#line 198 "../../../redhat/stock-elfutils/src/ldlex.l"
+#line 198 "ldlex.l"
 { ldlval.str = obstack_strndup (&ld_state.smem,
-								yytext, yyleng);
+								ldtext, ldleng);
 				  return kFILENAME; }
 	YY_BREAK
 case 48:
+/* rule 48 can match eol */
 YY_RULE_SETUP
-#line 202 "../../../redhat/stock-elfutils/src/ldlex.l"
+#line 202 "ldlex.l"
 { /* IGNORE */ }
 	YY_BREAK
 case 49:
 YY_RULE_SETUP
-#line 204 "../../../redhat/stock-elfutils/src/ldlex.l"
-{ invalid_char (*yytext); }
+#line 204 "ldlex.l"
+{ invalid_char (*ldtext); }
 	YY_BREAK
 case 50:
 YY_RULE_SETUP
-#line 206 "../../../redhat/stock-elfutils/src/ldlex.l"
+#line 206 "ldlex.l"
 ECHO;
 	YY_BREAK
-#line 1683 "ldlex.c"
-			case YY_STATE_EOF(INITIAL):
-			case YY_STATE_EOF(IGNORE):
-				yyterminate();
+#line 1741 "ldlex.c"
+case YY_STATE_EOF(INITIAL):
+case YY_STATE_EOF(IGNORE):
+	yyterminate();
 
 	case YY_END_OF_BUFFER:
 		{
 		/* Amount of text matched not including the EOB char. */
-		int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
+		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
 
 		/* Undo the effects of YY_DO_BEFORE_ACTION. */
-		*yy_cp = yy_hold_char;
+		*yy_cp = (yy_hold_char);
 		YY_RESTORE_YY_MORE_OFFSET
 
-		if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
+		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
 			{
 			/* We're scanning a new file or input source.  It's
 			 * possible that this happened because the user
-			 * just pointed yyin at a new source and called
-			 * yylex().  If so, then we have to assure
-			 * consistency between yy_current_buffer and our
+			 * just pointed ldin at a new source and called
+			 * ldlex().  If so, then we have to assure
+			 * consistency between YY_CURRENT_BUFFER and our
 			 * globals.  Here is the right place to do so, because
 			 * this is the first action (other than possibly a
 			 * back-up) that will match for the new input source.
 			 */
-			yy_n_chars = yy_current_buffer->yy_n_chars;
-			yy_current_buffer->yy_input_file = yyin;
-			yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
+			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+			YY_CURRENT_BUFFER_LVALUE->yy_input_file = ldin;
+			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
 			}
 
 		/* Note that here we test for yy_c_buf_p "<=" to the position
@@ -1716,13 +1785,13 @@
 		 * end-of-buffer state).  Contrast this with the test
 		 * in input().
 		 */
-		if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
+		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
 			{ /* This was really a NUL. */
 			yy_state_type yy_next_state;
 
-			yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
+			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
 
-			yy_current_state = yy_get_previous_state();
+			yy_current_state = yy_get_previous_state(  );
 
 			/* Okay, we're now positioned to make the NUL
 			 * transition.  We couldn't have
@@ -1735,41 +1804,42 @@
 
 			yy_next_state = yy_try_NUL_trans( yy_current_state );
 
-			yy_bp = yytext_ptr + YY_MORE_ADJ;
+			yy_bp = (yytext_ptr) + YY_MORE_ADJ;
 
 			if ( yy_next_state )
 				{
 				/* Consume the NUL. */
-				yy_cp = ++yy_c_buf_p;
+				yy_cp = ++(yy_c_buf_p);
 				yy_current_state = yy_next_state;
 				goto yy_match;
 				}
 
 			else
 				{
-				yy_cp = yy_c_buf_p;
+				yy_cp = (yy_last_accepting_cpos);
+				yy_current_state = (yy_last_accepting_state);
 				goto yy_find_action;
 				}
 			}
 
-		else switch ( yy_get_next_buffer() )
+		else switch ( yy_get_next_buffer(  ) )
 			{
 			case EOB_ACT_END_OF_FILE:
 				{
-				yy_did_buffer_switch_on_eof = 0;
+				(yy_did_buffer_switch_on_eof) = 0;
 
-				if ( yywrap() )
+				if ( ldwrap( ) )
 					{
 					/* Note: because we've taken care in
 					 * yy_get_next_buffer() to have set up
-					 * yytext, we can now set up
+					 * ldtext, we can now set up
 					 * yy_c_buf_p so that if some total
 					 * hoser (like flex itself) wants to
 					 * call the scanner after we return the
 					 * YY_NULL, it'll still work - another
 					 * YY_NULL will get returned.
 					 */
-					yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
+					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
 
 					yy_act = YY_STATE_EOF(YY_START);
 					goto do_action;
@@ -1777,30 +1847,30 @@
 
 				else
 					{
-					if ( ! yy_did_buffer_switch_on_eof )
+					if ( ! (yy_did_buffer_switch_on_eof) )
 						YY_NEW_FILE;
 					}
 				break;
 				}
 
 			case EOB_ACT_CONTINUE_SCAN:
-				yy_c_buf_p =
-					yytext_ptr + yy_amount_of_matched_text;
+				(yy_c_buf_p) =
+					(yytext_ptr) + yy_amount_of_matched_text;
 
-				yy_current_state = yy_get_previous_state();
+				yy_current_state = yy_get_previous_state(  );
 
-				yy_cp = yy_c_buf_p;
-				yy_bp = yytext_ptr + YY_MORE_ADJ;
+				yy_cp = (yy_c_buf_p);
+				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
 				goto yy_match;
 
 			case EOB_ACT_LAST_MATCH:
-				yy_c_buf_p =
-				&yy_current_buffer->yy_ch_buf[yy_n_chars];
+				(yy_c_buf_p) =
+				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
 
-				yy_current_state = yy_get_previous_state();
+				yy_current_state = yy_get_previous_state(  );
 
-				yy_cp = yy_c_buf_p;
-				yy_bp = yytext_ptr + YY_MORE_ADJ;
+				yy_cp = (yy_c_buf_p);
+				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
 				goto yy_find_action;
 			}
 		break;
@@ -1811,8 +1881,7 @@
 			"fatal flex scanner internal error--no action found" );
 	} /* end of action switch */
 		} /* end of scanning one token */
-	} /* end of yylex */
-
+} /* end of ldlex */
 
 /* yy_get_next_buffer - try to read in a new buffer
  *
@@ -1821,21 +1890,20 @@
  *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
  *	EOB_ACT_END_OF_FILE - end of file
  */
-
-static int yy_get_next_buffer()
-	{
-	register char *dest = yy_current_buffer->yy_ch_buf;
-	register char *source = yytext_ptr;
+static int yy_get_next_buffer (void)
+{
+    	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
+	register char *source = (yytext_ptr);
 	register int number_to_move, i;
 	int ret_val;
 
-	if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
+	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
 		YY_FATAL_ERROR(
 		"fatal flex scanner internal error--end of buffer missed" );
 
-	if ( yy_current_buffer->yy_fill_buffer == 0 )
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
 		{ /* Don't try to fill the buffer, so this is an EOF. */
-		if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
+		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
 			{
 			/* We matched a single character, the EOB, so
 			 * treat this as a final EOF.
@@ -1855,34 +1923,30 @@
 	/* Try to read more data. */
 
 	/* First move last chars to start of buffer. */
-	number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
+	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
 
 	for ( i = 0; i < number_to_move; ++i )
 		*(dest++) = *(source++);
 
-	if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
 		/* don't do the read, it's not guaranteed to return an EOF,
 		 * just force an EOF
 		 */
-		yy_current_buffer->yy_n_chars = yy_n_chars = 0;
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
 
 	else
 		{
-		int num_to_read =
-			yy_current_buffer->yy_buf_size - number_to_move - 1;
+			int num_to_read =
+			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
 
 		while ( num_to_read <= 0 )
 			{ /* Not enough room in the buffer - grow it. */
-#ifdef YY_USES_REJECT
-			YY_FATAL_ERROR(
-"input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
-#else
 
 			/* just a shorter name for the current buffer */
-			YY_BUFFER_STATE b = yy_current_buffer;
+			YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
 
 			int yy_c_buf_p_offset =
-				(int) (yy_c_buf_p - b->yy_ch_buf);
+				(int) ((yy_c_buf_p) - b->yy_ch_buf);
 
 			if ( b->yy_is_our_buffer )
 				{
@@ -1895,8 +1959,7 @@
 
 				b->yy_ch_buf = (char *)
 					/* Include room in for 2 EOB chars. */
-					yy_flex_realloc( (void *) b->yy_ch_buf,
-							 b->yy_buf_size + 2 );
+					ldrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
 				}
 			else
 				/* Can't grow it, we don't own it. */
@@ -1906,35 +1969,35 @@
 				YY_FATAL_ERROR(
 				"fatal error - scanner input buffer overflow" );
 
-			yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
+			(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
 
-			num_to_read = yy_current_buffer->yy_buf_size -
+			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
 						number_to_move - 1;
-#endif
+
 			}
 
 		if ( num_to_read > YY_READ_BUF_SIZE )
 			num_to_read = YY_READ_BUF_SIZE;
 
 		/* Read in more data. */
-		YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
-			yy_n_chars, num_to_read );
+		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
+			(yy_n_chars), num_to_read );
 
-		yy_current_buffer->yy_n_chars = yy_n_chars;
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
 		}
 
-	if ( yy_n_chars == 0 )
+	if ( (yy_n_chars) == 0 )
 		{
 		if ( number_to_move == YY_MORE_ADJ )
 			{
 			ret_val = EOB_ACT_END_OF_FILE;
-			yyrestart( yyin );
+			ldrestart(ldin  );
 			}
 
 		else
 			{
 			ret_val = EOB_ACT_LAST_MATCH;
-			yy_current_buffer->yy_buffer_status =
+			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
 				YY_BUFFER_EOF_PENDING;
 			}
 		}
@@ -1942,31 +2005,33 @@
 	else
 		ret_val = EOB_ACT_CONTINUE_SCAN;
 
-	yy_n_chars += number_to_move;
-	yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
-	yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
+	(yy_n_chars) += number_to_move;
+	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
+	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
 
-	yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
+	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
 
 	return ret_val;
-	}
-
+}
 
 /* yy_get_previous_state - get the state just before the EOB char was reached */
 
-static yy_state_type yy_get_previous_state()
-	{
+    static yy_state_type yy_get_previous_state (void)
+{
 	register yy_state_type yy_current_state;
 	register char *yy_cp;
-
-	yy_current_state = yy_start;
+    
+	yy_current_state = (yy_start);
 	yy_current_state += YY_AT_BOL();
-	yy_state_ptr = yy_state_buf;
-	*yy_state_ptr++ = yy_current_state;
 
-	for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
+	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
 		{
 		register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
+		if ( yy_accept[yy_current_state] )
+			{
+			(yy_last_accepting_state) = yy_current_state;
+			(yy_last_accepting_cpos) = yy_cp;
+			}
 		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 			{
 			yy_current_state = (int) yy_def[yy_current_state];
@@ -1974,29 +2039,27 @@
 				yy_c = yy_meta[(unsigned int) yy_c];
 			}
 		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-		*yy_state_ptr++ = yy_current_state;
 		}
 
 	return yy_current_state;
-	}
-
+}
 
 /* yy_try_NUL_trans - try to make a transition on the NUL character
  *
  * synopsis
  *	next_state = yy_try_NUL_trans( current_state );
  */
-
-#ifdef YY_USE_PROTOS
-static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
-#else
-static yy_state_type yy_try_NUL_trans( yy_current_state )
-yy_state_type yy_current_state;
-#endif
-	{
+    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
+{
 	register int yy_is_jam;
+    	register char *yy_cp = (yy_c_buf_p);
 
 	register YY_CHAR yy_c = 1;
+	if ( yy_accept[yy_current_state] )
+		{
+		(yy_last_accepting_state) = yy_current_state;
+		(yy_last_accepting_cpos) = yy_cp;
+		}
 	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 		{
 		yy_current_state = (int) yy_def[yy_current_state];
@@ -2005,87 +2068,79 @@
 		}
 	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
 	yy_is_jam = (yy_current_state == 218);
-	if ( ! yy_is_jam )
-		*yy_state_ptr++ = yy_current_state;
 
 	return yy_is_jam ? 0 : yy_current_state;
-	}
-
+}
 
-#ifndef YY_NO_UNPUT
-#ifdef YY_USE_PROTOS
-static void yyunput( int c, register char *yy_bp )
-#else
-static void yyunput( c, yy_bp )
-int c;
-register char *yy_bp;
-#endif
-	{
-	register char *yy_cp = yy_c_buf_p;
+    static void yyunput (int c, register char * yy_bp )
+{
+	register char *yy_cp;
+    
+    yy_cp = (yy_c_buf_p);
 
-	/* undo effects of setting up yytext */
-	*yy_cp = yy_hold_char;
+	/* undo effects of setting up ldtext */
+	*yy_cp = (yy_hold_char);
 
-	if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
+	if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
 		{ /* need to shift things up to make room */
 		/* +2 for EOB chars. */
-		register int number_to_move = yy_n_chars + 2;
-		register char *dest = &yy_current_buffer->yy_ch_buf[
-					yy_current_buffer->yy_buf_size + 2];
+		register int number_to_move = (yy_n_chars) + 2;
+		register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
+					YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
 		register char *source =
-				&yy_current_buffer->yy_ch_buf[number_to_move];
+				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
 
-		while ( source > yy_current_buffer->yy_ch_buf )
+		while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
 			*--dest = *--source;
 
 		yy_cp += (int) (dest - source);
 		yy_bp += (int) (dest - source);
-		yy_current_buffer->yy_n_chars =
-			yy_n_chars = yy_current_buffer->yy_buf_size;
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
+			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
 
-		if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
+		if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
 			YY_FATAL_ERROR( "flex scanner push-back overflow" );
 		}
 
 	*--yy_cp = (char) c;
 
-	if ( c == '\n' )
-		--yylineno;
-
-	yytext_ptr = yy_bp;
-	yy_hold_char = *yy_cp;
-	yy_c_buf_p = yy_cp;
-	}
-#endif	/* ifndef YY_NO_UNPUT */
+    if ( c == '\n' ){
+        --ldlineno;
+    }
 
+	(yytext_ptr) = yy_bp;
+	(yy_hold_char) = *yy_cp;
+	(yy_c_buf_p) = yy_cp;
+}
 
 #ifndef YY_NO_INPUT
 #ifdef __cplusplus
-static int yyinput()
+    static int yyinput (void)
 #else
-static int input()
+    static int input  (void)
 #endif
-	{
-	int c;
 
-	*yy_c_buf_p = yy_hold_char;
+{
+	int c;
+    
+	*(yy_c_buf_p) = (yy_hold_char);
 
-	if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
+	if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
 		{
 		/* yy_c_buf_p now points to the character we want to return.
 		 * If this occurs *before* the EOB characters, then it's a
 		 * valid NUL; if not, then we've hit the end of the buffer.
 		 */
-		if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
+		if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
 			/* This was really a NUL. */
-			*yy_c_buf_p = '\0';
+			*(yy_c_buf_p) = '\0';
 
 		else
 			{ /* need more input */
-			int offset = yy_c_buf_p - yytext_ptr;
-			++yy_c_buf_p;
+			int offset = (yy_c_buf_p) - (yytext_ptr);
+			++(yy_c_buf_p);
 
-			switch ( yy_get_next_buffer() )
+			switch ( yy_get_next_buffer(  ) )
 				{
 				case EOB_ACT_LAST_MATCH:
 					/* This happens because yy_g_n_b()
@@ -2099,16 +2154,16 @@
 					 */
 
 					/* Reset buffer status. */
-					yyrestart( yyin );
+					ldrestart(ldin );
 
-					/* fall through */
+					/*FALLTHROUGH*/
 
 				case EOB_ACT_END_OF_FILE:
 					{
-					if ( yywrap() )
+					if ( ldwrap( ) )
 						return EOF;
 
-					if ( ! yy_did_buffer_switch_on_eof )
+					if ( ! (yy_did_buffer_switch_on_eof) )
 						YY_NEW_FILE;
 #ifdef __cplusplus
 					return yyinput();
@@ -2118,170 +2173,171 @@
 					}
 
 				case EOB_ACT_CONTINUE_SCAN:
-					yy_c_buf_p = yytext_ptr + offset;
+					(yy_c_buf_p) = (yytext_ptr) + offset;
 					break;
 				}
 			}
 		}
 
-	c = *(unsigned char *) yy_c_buf_p;	/* cast for 8-bit char's */
-	*yy_c_buf_p = '\0';	/* preserve yytext */
-	yy_hold_char = *++yy_c_buf_p;
-
-	yy_current_buffer->yy_at_bol = (c == '\n');
-	if ( yy_current_buffer->yy_at_bol )
-		++yylineno;
+	c = *(unsigned char *) (yy_c_buf_p);	/* cast for 8-bit char's */
+	*(yy_c_buf_p) = '\0';	/* preserve ldtext */
+	(yy_hold_char) = *++(yy_c_buf_p);
+
+	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_at_bol )
+		   
+    ldlineno++;
+;
 
 	return c;
-	}
-#endif /* YY_NO_INPUT */
-
-#ifdef YY_USE_PROTOS
-void yyrestart( FILE *input_file )
-#else
-void yyrestart( input_file )
-FILE *input_file;
-#endif
-	{
-	if ( ! yy_current_buffer )
-		yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
+}
+#endif	/* ifndef YY_NO_INPUT */
 
-	yy_init_buffer( yy_current_buffer, input_file );
-	yy_load_buffer_state();
+/** Immediately switch to a different input stream.
+ * @param input_file A readable stream.
+ * 
+ * @note This function does not reset the start condition to @c INITIAL .
+ */
+    void ldrestart  (FILE * input_file )
+{
+    
+	if ( ! YY_CURRENT_BUFFER ){
+        ldensure_buffer_stack ();
+		YY_CURRENT_BUFFER_LVALUE =
+            ld_create_buffer(ldin,YY_BUF_SIZE );
 	}
 
+	ld_init_buffer(YY_CURRENT_BUFFER,input_file );
+	ld_load_buffer_state( );
+}
 
-#ifdef YY_USE_PROTOS
-void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
-#else
-void yy_switch_to_buffer( new_buffer )
-YY_BUFFER_STATE new_buffer;
-#endif
-	{
-	if ( yy_current_buffer == new_buffer )
+/** Switch to a different input buffer.
+ * @param new_buffer The new input buffer.
+ * 
+ */
+    void ld_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
+{
+    
+	/* TODO. We should be able to replace this entire function body
+	 * with
+	 *		ldpop_buffer_state();
+	 *		ldpush_buffer_state(new_buffer);
+     */
+	ldensure_buffer_stack ();
+	if ( YY_CURRENT_BUFFER == new_buffer )
 		return;
 
-	if ( yy_current_buffer )
+	if ( YY_CURRENT_BUFFER )
 		{
 		/* Flush out information for old buffer. */
-		*yy_c_buf_p = yy_hold_char;
-		yy_current_buffer->yy_buf_pos = yy_c_buf_p;
-		yy_current_buffer->yy_n_chars = yy_n_chars;
+		*(yy_c_buf_p) = (yy_hold_char);
+		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
 		}
 
-	yy_current_buffer = new_buffer;
-	yy_load_buffer_state();
+	YY_CURRENT_BUFFER_LVALUE = new_buffer;
+	ld_load_buffer_state( );
 
 	/* We don't actually know whether we did this switch during
-	 * EOF (yywrap()) processing, but the only time this flag
-	 * is looked at is after yywrap() is called, so it's safe
+	 * EOF (ldwrap()) processing, but the only time this flag
+	 * is looked at is after ldwrap() is called, so it's safe
 	 * to go ahead and always set it.
 	 */
-	yy_did_buffer_switch_on_eof = 1;
-	}
-
-
-#ifdef YY_USE_PROTOS
-void yy_load_buffer_state( void )
-#else
-void yy_load_buffer_state()
-#endif
-	{
-	yy_n_chars = yy_current_buffer->yy_n_chars;
-	yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
-	yyin = yy_current_buffer->yy_input_file;
-	yy_hold_char = *yy_c_buf_p;
-	}
+	(yy_did_buffer_switch_on_eof) = 1;
+}
 
+static void ld_load_buffer_state  (void)
+{
+    	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
+	ldin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
+	(yy_hold_char) = *(yy_c_buf_p);
+}
 
-#ifdef YY_USE_PROTOS
-YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
-#else
-YY_BUFFER_STATE yy_create_buffer( file, size )
-FILE *file;
-int size;
-#endif
-	{
+/** Allocate and initialize an input buffer state.
+ * @param file A readable stream.
+ * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
+ * 
+ * @return the allocated buffer state.
+ */
+    YY_BUFFER_STATE ld_create_buffer  (FILE * file, int  size )
+{
 	YY_BUFFER_STATE b;
-
-	b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
+    
+	b = (YY_BUFFER_STATE) ldalloc(sizeof( struct yy_buffer_state )  );
 	if ( ! b )
-		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+		YY_FATAL_ERROR( "out of dynamic memory in ld_create_buffer()" );
 
 	b->yy_buf_size = size;
 
 	/* yy_ch_buf has to be 2 characters longer than the size given because
 	 * we need to put in 2 end-of-buffer characters.
 	 */
-	b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
+	b->yy_ch_buf = (char *) ldalloc(b->yy_buf_size + 2  );
 	if ( ! b->yy_ch_buf )
-		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+		YY_FATAL_ERROR( "out of dynamic memory in ld_create_buffer()" );
 
 	b->yy_is_our_buffer = 1;
 
-	yy_init_buffer( b, file );
+	ld_init_buffer(b,file );
 
 	return b;
-	}
-
+}
 
-#ifdef YY_USE_PROTOS
-void yy_delete_buffer( YY_BUFFER_STATE b )
-#else
-void yy_delete_buffer( b )
-YY_BUFFER_STATE b;
-#endif
-	{
+/** Destroy the buffer.
+ * @param b a buffer created with ld_create_buffer()
+ * 
+ */
+    void ld_delete_buffer (YY_BUFFER_STATE  b )
+{
+    
 	if ( ! b )
 		return;
 
-	if ( b == yy_current_buffer )
-		yy_current_buffer = (YY_BUFFER_STATE) 0;
+	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
+		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
 
 	if ( b->yy_is_our_buffer )
-		yy_flex_free( (void *) b->yy_ch_buf );
-
-	yy_flex_free( (void *) b );
-	}
-
-
+		ldfree((void *) b->yy_ch_buf  );
 
-#ifdef YY_USE_PROTOS
-void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
-#else
-void yy_init_buffer( b, file )
-YY_BUFFER_STATE b;
-FILE *file;
-#endif
+	ldfree((void *) b  );
+}
 
+/* Initializes or reinitializes a buffer.
+ * This function is sometimes called more than once on the same buffer,
+ * such as during a ldrestart() or at EOF.
+ */
+    static void ld_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
 
-	{
-	yy_flush_buffer( b );
+{
+	int oerrno = errno;
+    
+	ld_flush_buffer(b );
 
 	b->yy_input_file = file;
 	b->yy_fill_buffer = 1;
 
-#if YY_ALWAYS_INTERACTIVE
-	b->yy_is_interactive = 1;
-#else
-#if YY_NEVER_INTERACTIVE
-	b->yy_is_interactive = 0;
-#else
-	b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
-#endif
-#endif
-	}
-
+    /* If b is the current buffer, then ld_init_buffer was _probably_
+     * called from ldrestart() or through yy_get_next_buffer.
+     * In that case, we don't want to reset the lineno or column.
+     */
+    if (b != YY_CURRENT_BUFFER){
+        b->yy_bs_lineno = 1;
+        b->yy_bs_column = 0;
+    }
 
-#ifdef YY_USE_PROTOS
-void yy_flush_buffer( YY_BUFFER_STATE b )
-#else
-void yy_flush_buffer( b )
-YY_BUFFER_STATE b;
-#endif
+        b->yy_is_interactive = 0;
+    
+	errno = oerrno;
+}
 
-	{
-	if ( ! b )
+/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
+ * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
+ * 
+ */
+    void ld_flush_buffer (YY_BUFFER_STATE  b )
+{
+    	if ( ! b )
 		return;
 
 	b->yy_n_chars = 0;
@@ -2298,31 +2354,123 @@
 	b->yy_at_bol = 1;
 	b->yy_buffer_status = YY_BUFFER_NEW;
 
-	if ( b == yy_current_buffer )
-		yy_load_buffer_state();
+	if ( b == YY_CURRENT_BUFFER )
+		ld_load_buffer_state( );
+}
+
+/** Pushes the new state onto the stack. The new state becomes
+ *  the current state. This function will allocate the stack
+ *  if necessary.
+ *  @param new_buffer The new state.
+ *  
+ */
+void ldpush_buffer_state (YY_BUFFER_STATE new_buffer )
+{
+    	if (new_buffer == NULL)
+		return;
+
+	ldensure_buffer_stack();
+
+	/* This block is copied from ld_switch_to_buffer. */
+	if ( YY_CURRENT_BUFFER )
+		{
+		/* Flush out information for old buffer. */
+		*(yy_c_buf_p) = (yy_hold_char);
+		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	/* Only push if top exists. Otherwise, replace top. */
+	if (YY_CURRENT_BUFFER)
+		(yy_buffer_stack_top)++;
+	YY_CURRENT_BUFFER_LVALUE = new_buffer;
+
+	/* copied from ld_switch_to_buffer. */
+	ld_load_buffer_state( );
+	(yy_did_buffer_switch_on_eof) = 1;
+}
+
+/** Removes and deletes the top of the stack, if present.
+ *  The next element becomes the new top.
+ *  
+ */
+void ldpop_buffer_state (void)
+{
+    	if (!YY_CURRENT_BUFFER)
+		return;
+
+	ld_delete_buffer(YY_CURRENT_BUFFER );
+	YY_CURRENT_BUFFER_LVALUE = NULL;
+	if ((yy_buffer_stack_top) > 0)
+		--(yy_buffer_stack_top);
+
+	if (YY_CURRENT_BUFFER) {
+		ld_load_buffer_state( );
+		(yy_did_buffer_switch_on_eof) = 1;
 	}
+}
 
+/* Allocates the stack if it does not exist.
+ *  Guarantees space for at least one push.
+ */
+static void ldensure_buffer_stack (void)
+{
+	int num_to_alloc;
+    
+	if (!(yy_buffer_stack)) {
+
+		/* First allocation is just for 2 elements, since we don't know if this
+		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
+		 * immediate realloc on the next call.
+         */
+		num_to_alloc = 1;
+		(yy_buffer_stack) = (struct yy_buffer_state**)ldalloc
+								(num_to_alloc * sizeof(struct yy_buffer_state*)
+								);
+		
+		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
+				
+		(yy_buffer_stack_max) = num_to_alloc;
+		(yy_buffer_stack_top) = 0;
+		return;
+	}
 
-#ifndef YY_NO_SCAN_BUFFER
-#ifdef YY_USE_PROTOS
-YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
-#else
-YY_BUFFER_STATE yy_scan_buffer( base, size )
-char *base;
-yy_size_t size;
-#endif
-	{
-	YY_BUFFER_STATE b;
+	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
+
+		/* Increase the buffer to prepare for a possible push. */
+		int grow_size = 8 /* arbitrary grow size */;
+
+		num_to_alloc = (yy_buffer_stack_max) + grow_size;
+		(yy_buffer_stack) = (struct yy_buffer_state**)ldrealloc
+								((yy_buffer_stack),
+								num_to_alloc * sizeof(struct yy_buffer_state*)
+								);
+
+		/* zero only the new slots.*/
+		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
+		(yy_buffer_stack_max) = num_to_alloc;
+	}
+}
 
+/** Setup the input buffer state to scan directly from a user-specified character buffer.
+ * @param base the character buffer
+ * @param size the size in bytes of the character buffer
+ * 
+ * @return the newly allocated buffer state object. 
+ */
+YY_BUFFER_STATE ld_scan_buffer  (char * base, yy_size_t  size )
+{
+	YY_BUFFER_STATE b;
+    
 	if ( size < 2 ||
 	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
 	     base[size-1] != YY_END_OF_BUFFER_CHAR )
 		/* They forgot to leave room for the EOB's. */
 		return 0;
 
-	b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
+	b = (YY_BUFFER_STATE) ldalloc(sizeof( struct yy_buffer_state )  );
 	if ( ! b )
-		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
+		YY_FATAL_ERROR( "out of dynamic memory in ld_scan_buffer()" );
 
 	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
 	b->yy_buf_pos = b->yy_ch_buf = base;
@@ -2334,58 +2482,53 @@
 	b->yy_fill_buffer = 0;
 	b->yy_buffer_status = YY_BUFFER_NEW;
 
-	yy_switch_to_buffer( b );
+	ld_switch_to_buffer(b  );
 
 	return b;
-	}
-#endif
-
-
-#ifndef YY_NO_SCAN_STRING
-#ifdef YY_USE_PROTOS
-YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
-#else
-YY_BUFFER_STATE yy_scan_string( yy_str )
-yyconst char *yy_str;
-#endif
-	{
-	int len;
-	for ( len = 0; yy_str[len]; ++len )
-		;
-
-	return yy_scan_bytes( yy_str, len );
-	}
-#endif
+}
 
+/** Setup the input buffer state to scan a string. The next call to ldlex() will
+ * scan from a @e copy of @a str.
+ * @param str a NUL-terminated string to scan
+ * 
+ * @return the newly allocated buffer state object.
+ * @note If you want to scan bytes that may contain NUL values, then use
+ *       ld_scan_bytes() instead.
+ */
+YY_BUFFER_STATE ld_scan_string (yyconst char * yystr )
+{
+    
+	return ld_scan_bytes(yystr,strlen(yystr) );
+}
 
-#ifndef YY_NO_SCAN_BYTES
-#ifdef YY_USE_PROTOS
-YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
-#else
-YY_BUFFER_STATE yy_scan_bytes( bytes, len )
-yyconst char *bytes;
-int len;
-#endif
-	{
+/** Setup the input buffer state to scan the given bytes. The next call to ldlex() will
+ * scan from a @e copy of @a bytes.
+ * @param bytes the byte buffer to scan
+ * @param len the number of bytes in the buffer pointed to by @a bytes.
+ * 
+ * @return the newly allocated buffer state object.
+ */
+YY_BUFFER_STATE ld_scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
+{
 	YY_BUFFER_STATE b;
 	char *buf;
 	yy_size_t n;
 	int i;
-
+    
 	/* Get memory for full buffer, including space for trailing EOB's. */
-	n = len + 2;
-	buf = (char *) yy_flex_alloc( n );
+	n = _yybytes_len + 2;
+	buf = (char *) ldalloc(n  );
 	if ( ! buf )
-		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
+		YY_FATAL_ERROR( "out of dynamic memory in ld_scan_bytes()" );
 
-	for ( i = 0; i < len; ++i )
-		buf[i] = bytes[i];
+	for ( i = 0; i < _yybytes_len; ++i )
+		buf[i] = yybytes[i];
 
-	buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
+	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
 
-	b = yy_scan_buffer( buf, n );
+	b = ld_scan_buffer(buf,n );
 	if ( ! b )
-		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
+		YY_FATAL_ERROR( "bad buffer in ld_scan_bytes()" );
 
 	/* It's okay to grow etc. this buffer, and we should throw it
 	 * away when we're done.
@@ -2393,148 +2536,199 @@
 	b->yy_is_our_buffer = 1;
 
 	return b;
-	}
-#endif
-
+}
 
-#ifndef YY_NO_PUSH_STATE
-#ifdef YY_USE_PROTOS
-static void yy_push_state( int new_state )
-#else
-static void yy_push_state( new_state )
-int new_state;
+#ifndef YY_EXIT_FAILURE
+#define YY_EXIT_FAILURE 2
 #endif
-	{
-	if ( yy_start_stack_ptr >= yy_start_stack_depth )
-		{
-		yy_size_t new_size;
 
-		yy_start_stack_depth += YY_START_STACK_INCR;
-		new_size = yy_start_stack_depth * sizeof( int );
+static void yy_fatal_error (yyconst char* msg )
+{
+    	(void) fprintf( stderr, "%s\n", msg );
+	exit( YY_EXIT_FAILURE );
+}
 
-		if ( ! yy_start_stack )
-			yy_start_stack = (int *) yy_flex_alloc( new_size );
+/* Redefine yyless() so it works in section 3 code. */
 
-		else
-			yy_start_stack = (int *) yy_flex_realloc(
-					(void *) yy_start_stack, new_size );
+#undef yyless
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up ldtext. */ \
+        int yyless_macro_arg = (n); \
+        YY_LESS_LINENO(yyless_macro_arg);\
+		ldtext[ldleng] = (yy_hold_char); \
+		(yy_c_buf_p) = ldtext + yyless_macro_arg; \
+		(yy_hold_char) = *(yy_c_buf_p); \
+		*(yy_c_buf_p) = '\0'; \
+		ldleng = yyless_macro_arg; \
+		} \
+	while ( 0 )
 
-		if ( ! yy_start_stack )
-			YY_FATAL_ERROR(
-			"out of memory expanding start-condition stack" );
-		}
+/* Accessor  methods (get/set functions) to struct members. */
 
-	yy_start_stack[yy_start_stack_ptr++] = YY_START;
+/** Get the current line number.
+ * 
+ */
+int ldget_lineno  (void)
+{
+        
+    return ldlineno;
+}
 
-	BEGIN(new_state);
-	}
-#endif
+/** Get the input stream.
+ * 
+ */
+FILE *ldget_in  (void)
+{
+        return ldin;
+}
 
+/** Get the output stream.
+ * 
+ */
+FILE *ldget_out  (void)
+{
+        return ldout;
+}
 
-#ifndef YY_NO_POP_STATE
-static void yy_pop_state()
-	{
-	if ( --yy_start_stack_ptr < 0 )
-		YY_FATAL_ERROR( "start-condition stack underflow" );
+/** Get the length of the current token.
+ * 
+ */
+int ldget_leng  (void)
+{
+        return ldleng;
+}
 
-	BEGIN(yy_start_stack[yy_start_stack_ptr]);
-	}
-#endif
+/** Get the current token.
+ * 
+ */
 
+char *ldget_text  (void)
+{
+        return ldtext;
+}
 
-#ifndef YY_NO_TOP_STATE
-static int yy_top_state()
-	{
-	return yy_start_stack[yy_start_stack_ptr - 1];
-	}
-#endif
+/** Set the current line number.
+ * @param line_number
+ * 
+ */
+void ldset_lineno (int  line_number )
+{
+    
+    ldlineno = line_number;
+}
 
-#ifndef YY_EXIT_FAILURE
-#define YY_EXIT_FAILURE 2
-#endif
+/** Set the input stream. This does not discard the current
+ * input buffer.
+ * @param in_str A readable stream.
+ * 
+ * @see ld_switch_to_buffer
+ */
+void ldset_in (FILE *  in_str )
+{
+        ldin = in_str ;
+}
 
-#ifdef YY_USE_PROTOS
-static void yy_fatal_error( yyconst char msg[] )
-#else
-static void yy_fatal_error( msg )
-char msg[];
-#endif
-	{
-	(void) fprintf( stderr, "%s\n", msg );
-	exit( YY_EXIT_FAILURE );
-	}
+void ldset_out (FILE *  out_str )
+{
+        ldout = out_str ;
+}
 
+int ldget_debug  (void)
+{
+        return ld_flex_debug;
+}
 
+void ldset_debug (int  bdebug )
+{
+        ld_flex_debug = bdebug ;
+}
 
-/* Redefine yyless() so it works in section 3 code. */
+static int yy_init_globals (void)
+{
+        /* Initialization is the same as for the non-reentrant scanner.
+     * This function is called from ldlex_destroy(), so don't allocate here.
+     */
+
+    /* We do not touch ldlineno unless the option is enabled. */
+    ldlineno =  1;
+    
+    (yy_buffer_stack) = 0;
+    (yy_buffer_stack_top) = 0;
+    (yy_buffer_stack_max) = 0;
+    (yy_c_buf_p) = (char *) 0;
+    (yy_init) = 0;
+    (yy_start) = 0;
+
+/* Defined in main.c */
+#ifdef YY_STDINIT
+    ldin = stdin;
+    ldout = stdout;
+#else
+    ldin = (FILE *) 0;
+    ldout = (FILE *) 0;
+#endif
+
+    /* For future reference: Set errno on error, since we are called by
+     * ldlex_init()
+     */
+    return 0;
+}
 
-#undef yyless
-#define yyless(n) \
-	do \
-		{ \
-		/* Undo effects of setting up yytext. */ \
-		yytext[yyleng] = yy_hold_char; \
-		yy_c_buf_p = yytext + n; \
-		yy_hold_char = *yy_c_buf_p; \
-		*yy_c_buf_p = '\0'; \
-		yyleng = n; \
-		} \
-	while ( 0 )
+/* ldlex_destroy is for both reentrant and non-reentrant scanners. */
+int ldlex_destroy  (void)
+{
+    
+    /* Pop the buffer stack, destroying each element. */
+	while(YY_CURRENT_BUFFER){
+		ld_delete_buffer(YY_CURRENT_BUFFER  );
+		YY_CURRENT_BUFFER_LVALUE = NULL;
+		ldpop_buffer_state();
+	}
+
+	/* Destroy the stack itself. */
+	ldfree((yy_buffer_stack) );
+	(yy_buffer_stack) = NULL;
+
+    /* Reset the globals. This is important in a non-reentrant scanner so the next time
+     * ldlex() is called, initialization will occur. */
+    yy_init_globals( );
 
+    return 0;
+}
 
-/* Internal utility routines. */
+/*
+ * Internal utility routines.
+ */
 
 #ifndef yytext_ptr
-#ifdef YY_USE_PROTOS
-static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
-#else
-static void yy_flex_strncpy( s1, s2, n )
-char *s1;
-yyconst char *s2;
-int n;
-#endif
-	{
+static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
+{
 	register int i;
 	for ( i = 0; i < n; ++i )
 		s1[i] = s2[i];
-	}
+}
 #endif
 
 #ifdef YY_NEED_STRLEN
-#ifdef YY_USE_PROTOS
-static int yy_flex_strlen( yyconst char *s )
-#else
-static int yy_flex_strlen( s )
-yyconst char *s;
-#endif
-	{
+static int yy_flex_strlen (yyconst char * s )
+{
 	register int n;
 	for ( n = 0; s[n]; ++n )
 		;
 
 	return n;
-	}
+}
 #endif
 
-
-#ifdef YY_USE_PROTOS
-static void *yy_flex_alloc( yy_size_t size )
-#else
-static void *yy_flex_alloc( size )
-yy_size_t size;
-#endif
-	{
+void *ldalloc (yy_size_t  size )
+{
 	return (void *) malloc( size );
-	}
+}
 
-#ifdef YY_USE_PROTOS
-static void *yy_flex_realloc( void *ptr, yy_size_t size )
-#else
-static void *yy_flex_realloc( ptr, size )
-void *ptr;
-yy_size_t size;
-#endif
-	{
+void *ldrealloc  (void * ptr, yy_size_t  size )
+{
 	/* The cast to (char *) in the following accommodates both
 	 * implementations that use char* generic pointers, and those
 	 * that use void* generic pointers.  It works with the latter
@@ -2543,26 +2737,17 @@
 	 * as though doing an assignment.
 	 */
 	return (void *) realloc( (char *) ptr, size );
-	}
+}
 
-#ifdef YY_USE_PROTOS
-static void yy_flex_free( void *ptr )
-#else
-static void yy_flex_free( ptr )
-void *ptr;
-#endif
-	{
-	free( ptr );
-	}
+void ldfree (void * ptr )
+{
+	free( (char *) ptr );	/* see ldrealloc() for (char *) cast */
+}
+
+#define YYTABLES_NAME "yytables"
+
+#line 206 "ldlex.l"
 
-#if YY_MAIN
-int main()
-	{
-	yylex();
-	return 0;
-	}
-#endif
-#line 206 "../../../redhat/stock-elfutils/src/ldlex.l"
 
 
 static void
@@ -2607,13 +2792,13 @@
 	break;
       if (c == '\n')
 	{
-	  ++yylineno;
+	  ++ldlineno;
 	  break;
 	}
 
       if (empty && ! isspace (c) && ! warned)
 	{
-	  error (0, 0, gettext ("%d: garbage at end of line"), yylineno);
+	  error (0, 0, gettext ("%d: garbage at end of line"), ldlineno);
 	  warned = true;
 	}
     }
@@ -2637,7 +2822,7 @@
 {
   if (prepdepth >= MAX_PREPDEPTH)
     error (EXIT_FAILURE, 0, gettext ("%d: conditionals nested too deep"),
-	   yylineno);
+	   ldlineno);
 
   prepstate[prepdepth++] = state;
 }
@@ -2647,7 +2832,7 @@
 pop_state (void)
 {
   if (prepdepth == 0)
-    error (0, 0, gettext ("%d: unexpected #endif"), yylineno);
+    error (0, 0, gettext ("%d: unexpected #endif"), ldlineno);
   else
     --prepdepth;
 
@@ -2712,10 +2897,11 @@
   error (0, 0, (isascii (ch)
 		? gettext ("invalid character '%c' at line %d; ignored")
 		: gettext ("invalid character '\\%o' at line %d; ignored")),
-	 ch, yylineno);
+	 ch, ldlineno);
 }
 
 
 // Local Variables:
 // mode: C
 // End:
+
Index: src/ldscript.c
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/src/ldscript.c,v
retrieving revision 1.6
diff -u -r1.6 ldscript.c
--- src/ldscript.c	22 Aug 2007 17:11:09 -0000	1.6
+++ src/ldscript.c	27 Aug 2007 19:21:47 -0000
@@ -1,7 +1,9 @@
-/* A Bison parser, made by GNU Bison 2.1.  */
+/* A Bison parser, made by GNU Bison 2.3.  */
 
-/* Skeleton parser for Yacc-like parsing with Bison,
-   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+/* Skeleton implementation for Bison's Yacc-like parsers in C
+
+   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+   Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -18,13 +20,21 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor,
    Boston, MA 02110-1301, USA.  */
 
-/* As a special exception, when this file is copied by Bison into a
-   Bison output file, you may use that output file without restriction.
-   This special exception was added by the Free Software Foundation
-   in version 1.24 of Bison.  */
+/* As a special exception, you may create a larger work that contains
+   part or all of the Bison parser skeleton and distribute that work
+   under terms of your choice, so long as that work isn't itself a
+   parser generator using the skeleton or a modified version thereof
+   as a parser skeleton.  Alternatively, if you modify or redistribute
+   the parser skeleton itself, you may (at your option) remove this
+   special exception, which will cause the skeleton and the resulting
+   Bison output files to be licensed under the GNU General Public
+   License without this special exception.
+
+   This special exception was added by the Free Software Foundation in
+   version 2.2 of Bison.  */
 
-/* Written by Richard Stallman by simplifying the original so called
-   ``semantic'' parser.  */
+/* C LALR(1) parser skeleton written by Richard Stallman, by
+   simplifying the original so-called "semantic" parser.  */
 
 /* All symbols defined below should begin with yy or YY, to avoid
    infringing on user name space.  This should be done even for local
@@ -37,7 +47,7 @@
 #define YYBISON 1
 
 /* Bison version.  */
-#define YYBISON_VERSION "2.1"
+#define YYBISON_VERSION "2.3"
 
 /* Skeleton name.  */
 #define YYSKELETON_NAME "yacc.c"
@@ -126,7 +136,7 @@
 
 
 /* Copy the first part of user declarations.  */
-#line 1 "../../../redhat/stock-elfutils/src/ldscript.y"
+#line 1 "ldscript.y"
 
 /* Parser for linker scripts.
    Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006 Red Hat, Inc.
@@ -215,9 +225,10 @@
 # define YYTOKEN_TABLE 0
 #endif
 
-#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-#line 71 "../../../redhat/stock-elfutils/src/ldscript.y"
-typedef union YYSTYPE {
+#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
+typedef union YYSTYPE
+#line 71 "ldscript.y"
+{
   uintmax_t num;
   enum expression_tag op;
   char *str;
@@ -230,9 +241,10 @@
   struct filename_list *filename_list;
   struct version *version;
   struct id_list *id_list;
-} YYSTYPE;
-/* Line 196 of yacc.c.  */
-#line 236 "ldscript.c"
+}
+/* Line 187 of yacc.c.  */
+#line 247 "ldscript.c"
+	YYSTYPE;
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
 # define YYSTYPE_IS_TRIVIAL 1
@@ -243,23 +255,56 @@
 /* Copy the second part of user declarations.  */
 
 
-/* Line 219 of yacc.c.  */
-#line 248 "ldscript.c"
+/* Line 216 of yacc.c.  */
+#line 260 "ldscript.c"
 
-#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
-# define YYSIZE_T __SIZE_TYPE__
+#ifdef short
+# undef short
 #endif
-#if ! defined (YYSIZE_T) && defined (size_t)
-# define YYSIZE_T size_t
+
+#ifdef YYTYPE_UINT8
+typedef YYTYPE_UINT8 yytype_uint8;
+#else
+typedef unsigned char yytype_uint8;
 #endif
-#if ! defined (YYSIZE_T) && (defined (__STDC__) || defined (__cplusplus))
-# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
-# define YYSIZE_T size_t
+
+#ifdef YYTYPE_INT8
+typedef YYTYPE_INT8 yytype_int8;
+#elif (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+typedef signed char yytype_int8;
+#else
+typedef short int yytype_int8;
+#endif
+
+#ifdef YYTYPE_UINT16
+typedef YYTYPE_UINT16 yytype_uint16;
+#else
+typedef unsigned short int yytype_uint16;
+#endif
+
+#ifdef YYTYPE_INT16
+typedef YYTYPE_INT16 yytype_int16;
+#else
+typedef short int yytype_int16;
 #endif
-#if ! defined (YYSIZE_T)
-# define YYSIZE_T unsigned int
+
+#ifndef YYSIZE_T
+# ifdef __SIZE_TYPE__
+#  define YYSIZE_T __SIZE_TYPE__
+# elif defined size_t
+#  define YYSIZE_T size_t
+# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
+#  define YYSIZE_T size_t
+# else
+#  define YYSIZE_T unsigned int
+# endif
 #endif
 
+#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
+
 #ifndef YY_
 # if YYENABLE_NLS
 #  if ENABLE_NLS
@@ -272,7 +317,32 @@
 # endif
 #endif
 
-#if ! defined (yyoverflow) || YYERROR_VERBOSE
+/* Suppress unused-variable warnings by "using" E.  */
+#if ! defined lint || defined __GNUC__
+# define YYUSE(e) ((void) (e))
+#else
+# define YYUSE(e) /* empty */
+#endif
+
+/* Identity function, used to suppress warnings about constant conditions.  */
+#ifndef lint
+# define YYID(n) (n)
+#else
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+static int
+YYID (int i)
+#else
+static int
+YYID (i)
+    int i;
+#endif
+{
+  return i;
+}
+#endif
+
+#if ! defined yyoverflow || YYERROR_VERBOSE
 
 /* The parser invokes alloca or malloc; define the necessary symbols.  */
 
@@ -280,64 +350,76 @@
 #  if YYSTACK_USE_ALLOCA
 #   ifdef __GNUC__
 #    define YYSTACK_ALLOC __builtin_alloca
+#   elif defined __BUILTIN_VA_ARG_INCR
+#    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
+#   elif defined _AIX
+#    define YYSTACK_ALLOC __alloca
+#   elif defined _MSC_VER
+#    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
+#    define alloca _alloca
 #   else
 #    define YYSTACK_ALLOC alloca
-#    if defined (__STDC__) || defined (__cplusplus)
+#    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-#     define YYINCLUDED_STDLIB_H
+#     ifndef _STDLIB_H
+#      define _STDLIB_H 1
+#     endif
 #    endif
 #   endif
 #  endif
 # endif
 
 # ifdef YYSTACK_ALLOC
-   /* Pacify GCC's `empty if-body' warning. */
-#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
+   /* Pacify GCC's `empty if-body' warning.  */
+#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
 #  ifndef YYSTACK_ALLOC_MAXIMUM
     /* The OS might guarantee only one guard page at the bottom of the stack,
        and a page size can be as small as 4096 bytes.  So we cannot safely
        invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
        to allow for a few compiler-allocated temporary stack slots.  */
-#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2005 */
+#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
 #  endif
 # else
 #  define YYSTACK_ALLOC YYMALLOC
 #  define YYSTACK_FREE YYFREE
 #  ifndef YYSTACK_ALLOC_MAXIMUM
-#   define YYSTACK_ALLOC_MAXIMUM ((YYSIZE_T) -1)
+#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
 #  endif
-#  ifdef __cplusplus
-extern "C" {
+#  if (defined __cplusplus && ! defined _STDLIB_H \
+       && ! ((defined YYMALLOC || defined malloc) \
+	     && (defined YYFREE || defined free)))
+#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+#   ifndef _STDLIB_H
+#    define _STDLIB_H 1
+#   endif
 #  endif
 #  ifndef YYMALLOC
 #   define YYMALLOC malloc
-#   if (! defined (malloc) && ! defined (YYINCLUDED_STDLIB_H) \
-	&& (defined (__STDC__) || defined (__cplusplus)))
+#   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
 #   endif
 #  endif
 #  ifndef YYFREE
 #   define YYFREE free
-#   if (! defined (free) && ! defined (YYINCLUDED_STDLIB_H) \
-	&& (defined (__STDC__) || defined (__cplusplus)))
+#   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
 void free (void *); /* INFRINGES ON USER NAME SPACE */
 #   endif
 #  endif
-#  ifdef __cplusplus
-}
-#  endif
 # endif
-#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
+#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
 
 
-#if (! defined (yyoverflow) \
-     && (! defined (__cplusplus) \
-	 || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
+#if (! defined yyoverflow \
+     && (! defined __cplusplus \
+	 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
 
 /* A type that is properly aligned for any stack member.  */
 union yyalloc
 {
-  short int yyss;
+  yytype_int16 yyss;
   YYSTYPE yyvs;
   };
 
@@ -347,13 +429,13 @@
 /* The size of an array large to enough to hold all stacks, each with
    N elements.  */
 # define YYSTACK_BYTES(N) \
-     ((N) * (sizeof (short int) + sizeof (YYSTYPE))			\
+     ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
       + YYSTACK_GAP_MAXIMUM)
 
 /* Copy COUNT objects from FROM to TO.  The source and destination do
    not overlap.  */
 # ifndef YYCOPY
-#  if defined (__GNUC__) && 1 < __GNUC__
+#  if defined __GNUC__ && 1 < __GNUC__
 #   define YYCOPY(To, From, Count) \
       __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
 #  else
@@ -364,7 +446,7 @@
 	  for (yyi = 0; yyi < (Count); yyi++)	\
 	    (To)[yyi] = (From)[yyi];		\
 	}					\
-      while (0)
+      while (YYID (0))
 #  endif
 # endif
 
@@ -382,28 +464,22 @@
 	yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
 	yyptr += yynewbytes / sizeof (*yyptr);				\
       }									\
-    while (0)
+    while (YYID (0))
 
 #endif
 
-#if defined (__STDC__) || defined (__cplusplus)
-   typedef signed char yysigned_char;
-#else
-   typedef short int yysigned_char;
-#endif
-
-/* YYFINAL -- State number of the termination state. */
+/* YYFINAL -- State number of the termination state.  */
 #define YYFINAL  32
 /* YYLAST -- Last index in YYTABLE.  */
 #define YYLAST   226
 
-/* YYNTOKENS -- Number of terminals. */
+/* YYNTOKENS -- Number of terminals.  */
 #define YYNTOKENS  40
-/* YYNNTS -- Number of nonterminals. */
+/* YYNNTS -- Number of nonterminals.  */
 #define YYNNTS  23
-/* YYNRULES -- Number of rules. */
+/* YYNRULES -- Number of rules.  */
 #define YYNRULES  66
-/* YYNRULES -- Number of states. */
+/* YYNRULES -- Number of states.  */
 #define YYNSTATES  159
 
 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
@@ -414,7 +490,7 @@
   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
 
 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
-static const unsigned char yytranslate[] =
+static const yytype_uint8 yytranslate[] =
 {
        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
@@ -450,7 +526,7 @@
 #if YYDEBUG
 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
    YYRHS.  */
-static const unsigned char yyprhs[] =
+static const yytype_uint8 yyprhs[] =
 {
        0,     0,     3,     5,     8,    11,    13,    19,    25,    31,
       37,    43,    49,    54,    59,    64,    69,    74,    77,    79,
@@ -461,8 +537,8 @@
      224,   227,   231,   234,   236,   238,   240
 };
 
-/* YYRHS -- A `-1'-separated list of the rules' RHS. */
-static const yysigned_char yyrhs[] =
+/* YYRHS -- A `-1'-separated list of the rules' RHS.  */
+static const yytype_int8 yyrhs[] =
 {
       41,     0,    -1,    42,    -1,    27,    56,    -1,    42,    43,
       -1,    43,    -1,     6,    33,    11,    34,    35,    -1,    22,
@@ -492,7 +568,7 @@
 };
 
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
-static const unsigned short int yyrline[] =
+static const yytype_uint16 yyrline[] =
 {
        0,   143,   143,   144,   148,   149,   152,   157,   161,   166,
      172,   176,   182,   193,   195,   197,   199,   203,   208,   212,
@@ -506,7 +582,7 @@
 
 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
-   First, the terminals, then, starting at YYNTOKENS, nonterminals. */
+   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
 static const char *const yytname[] =
 {
   "$end", "error", "$undefined", "kADD_OP", "kALIGN", "kAS_NEEDED",
@@ -527,7 +603,7 @@
 # ifdef YYPRINT
 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
    token YYLEX-NUM.  */
-static const unsigned short int yytoknum[] =
+static const yytype_uint16 yytoknum[] =
 {
        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
@@ -537,7 +613,7 @@
 # endif
 
 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
-static const unsigned char yyr1[] =
+static const yytype_uint8 yyr1[] =
 {
        0,    40,    41,    41,    42,    42,    43,    43,    43,    43,
       43,    43,    43,    43,    43,    43,    43,    44,    44,    45,
@@ -549,7 +625,7 @@
 };
 
 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
-static const unsigned char yyr2[] =
+static const yytype_uint8 yyr2[] =
 {
        0,     2,     1,     2,     2,     1,     5,     5,     5,     5,
        5,     5,     4,     4,     4,     4,     4,     2,     1,     2,
@@ -563,7 +639,7 @@
 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
    STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
    means the default is an error.  */
-static const unsigned char yydefact[] =
+static const yytype_uint8 yydefact[] =
 {
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     2,     5,     0,     0,     0,     0,     0,
@@ -583,8 +659,8 @@
        0,    34,    23,     0,     0,    29,    32,     0,    31
 };
 
-/* YYDEFGOTO[NTERM-NUM]. */
-static const short int yydefgoto[] =
+/* YYDEFGOTO[NTERM-NUM].  */
+static const yytype_int16 yydefgoto[] =
 {
       -1,    12,    13,    14,    69,    70,    71,   106,   107,   108,
      150,   137,   116,    36,    59,    37,    29,    30,    51,    52,
@@ -594,7 +670,7 @@
 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    STATE-NUM.  */
 #define YYPACT_NINF -86
-static const short int yypact[] =
+static const yytype_int16 yypact[] =
 {
      111,   -18,   -14,    23,    45,    70,    75,    85,    92,    97,
       91,    19,   128,   134,   -86,   162,    96,   162,   162,     5,
@@ -615,7 +691,7 @@
 };
 
 /* YYPGOTO[NTERM-NUM].  */
-static const short int yypgoto[] =
+static const yytype_int16 yypgoto[] =
 {
      -86,   -86,   -86,   192,   168,    80,   -85,   -86,   102,    89,
      -86,   -86,    33,   -16,   -86,   153,   186,    38,   170,   -39,
@@ -627,7 +703,7 @@
    number is the opposite.  If zero, do what YYDEFACT says.
    If YYTABLE_NINF, syntax error.  */
 #define YYTABLE_NINF -1
-static const unsigned char yytable[] =
+static const yytype_uint8 yytable[] =
 {
       31,    40,    41,   128,    38,   105,    38,    38,    42,    43,
      128,    45,    80,    26,    31,    15,    27,   129,    31,    16,
@@ -654,7 +730,7 @@
        0,     0,     0,     0,    81,     0,    78
 };
 
-static const short int yycheck[] =
+static const yytype_int16 yycheck[] =
 {
       11,    17,    18,     3,    15,    90,    17,    18,    19,    20,
        3,    22,    51,     8,    25,    33,    11,    17,    29,    33,
@@ -683,7 +759,7 @@
 
 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
    symbol of state STATE-NUM.  */
-static const unsigned char yystos[] =
+static const yytype_uint8 yystos[] =
 {
        0,     5,     6,    10,    12,    13,    19,    20,    22,    23,
       26,    27,    41,    42,    43,    33,    33,    33,    33,    33,
@@ -728,7 +804,7 @@
       yychar = (Token);						\
       yylval = (Value);						\
       yytoken = YYTRANSLATE (yychar);				\
-      YYPOPSTACK;						\
+      YYPOPSTACK (1);						\
       goto yybackup;						\
     }								\
   else								\
@@ -736,7 +812,7 @@
       yyerror (YY_("syntax error: cannot back up")); \
       YYERROR;							\
     }								\
-while (0)
+while (YYID (0))
 
 
 #define YYTERROR	1
@@ -751,7 +827,7 @@
 #ifndef YYLLOC_DEFAULT
 # define YYLLOC_DEFAULT(Current, Rhs, N)				\
     do									\
-      if (N)								\
+      if (YYID (N))                                                    \
 	{								\
 	  (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;	\
 	  (Current).first_column = YYRHSLOC (Rhs, 1).first_column;	\
@@ -765,7 +841,7 @@
 	  (Current).first_column = (Current).last_column =		\
 	    YYRHSLOC (Rhs, 0).last_column;				\
 	}								\
-    while (0)
+    while (YYID (0))
 #endif
 
 
@@ -777,8 +853,8 @@
 # if YYLTYPE_IS_TRIVIAL
 #  define YY_LOCATION_PRINT(File, Loc)			\
      fprintf (File, "%d.%d-%d.%d",			\
-              (Loc).first_line, (Loc).first_column,	\
-              (Loc).last_line,  (Loc).last_column)
+	      (Loc).first_line, (Loc).first_column,	\
+	      (Loc).last_line,  (Loc).last_column)
 # else
 #  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
 # endif
@@ -805,36 +881,96 @@
 do {						\
   if (yydebug)					\
     YYFPRINTF Args;				\
-} while (0)
+} while (YYID (0))
 
-# define YY_SYMBOL_PRINT(Title, Type, Value, Location)		\
-do {								\
-  if (yydebug)							\
-    {								\
-      YYFPRINTF (stderr, "%s ", Title);				\
-      yysymprint (stderr,					\
-                  Type, Value);	\
-      YYFPRINTF (stderr, "\n");					\
-    }								\
-} while (0)
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location)			  \
+do {									  \
+  if (yydebug)								  \
+    {									  \
+      YYFPRINTF (stderr, "%s ", Title);					  \
+      yy_symbol_print (stderr,						  \
+		  Type, Value); \
+      YYFPRINTF (stderr, "\n");						  \
+    }									  \
+} while (YYID (0))
+
+
+/*--------------------------------.
+| Print this symbol on YYOUTPUT.  |
+`--------------------------------*/
+
+/*ARGSUSED*/
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+static void
+yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
+#else
+static void
+yy_symbol_value_print (yyoutput, yytype, yyvaluep)
+    FILE *yyoutput;
+    int yytype;
+    YYSTYPE const * const yyvaluep;
+#endif
+{
+  if (!yyvaluep)
+    return;
+# ifdef YYPRINT
+  if (yytype < YYNTOKENS)
+    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
+# else
+  YYUSE (yyoutput);
+# endif
+  switch (yytype)
+    {
+      default:
+	break;
+    }
+}
+
+
+/*--------------------------------.
+| Print this symbol on YYOUTPUT.  |
+`--------------------------------*/
+
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+static void
+yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
+#else
+static void
+yy_symbol_print (yyoutput, yytype, yyvaluep)
+    FILE *yyoutput;
+    int yytype;
+    YYSTYPE const * const yyvaluep;
+#endif
+{
+  if (yytype < YYNTOKENS)
+    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
+  else
+    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
+
+  yy_symbol_value_print (yyoutput, yytype, yyvaluep);
+  YYFPRINTF (yyoutput, ")");
+}
 
 /*------------------------------------------------------------------.
 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
 | TOP (included).                                                   |
 `------------------------------------------------------------------*/
 
-#if defined (__STDC__) || defined (__cplusplus)
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
 static void
-yy_stack_print (short int *bottom, short int *top)
+yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
 #else
 static void
 yy_stack_print (bottom, top)
-    short int *bottom;
-    short int *top;
+    yytype_int16 *bottom;
+    yytype_int16 *top;
 #endif
 {
   YYFPRINTF (stderr, "Stack now");
-  for (/* Nothing. */; bottom <= top; ++bottom)
+  for (; bottom <= top; ++bottom)
     YYFPRINTF (stderr, " %d", *bottom);
   YYFPRINTF (stderr, "\n");
 }
@@ -843,37 +979,45 @@
 do {								\
   if (yydebug)							\
     yy_stack_print ((Bottom), (Top));				\
-} while (0)
+} while (YYID (0))
 
 
 /*------------------------------------------------.
 | Report that the YYRULE is going to be reduced.  |
 `------------------------------------------------*/
 
-#if defined (__STDC__) || defined (__cplusplus)
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
 static void
-yy_reduce_print (int yyrule)
+yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
 #else
 static void
-yy_reduce_print (yyrule)
+yy_reduce_print (yyvsp, yyrule)
+    YYSTYPE *yyvsp;
     int yyrule;
 #endif
 {
+  int yynrhs = yyr2[yyrule];
   int yyi;
   unsigned long int yylno = yyrline[yyrule];
-  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu), ",
-             yyrule - 1, yylno);
-  /* Print the symbols being reduced, and their result.  */
-  for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
-    YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]);
-  YYFPRINTF (stderr, "-> %s\n", yytname[yyr1[yyrule]]);
+  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
+	     yyrule - 1, yylno);
+  /* The symbols being reduced.  */
+  for (yyi = 0; yyi < yynrhs; yyi++)
+    {
+      fprintf (stderr, "   $%d = ", yyi + 1);
+      yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
+		       &(yyvsp[(yyi + 1) - (yynrhs)])
+		       		       );
+      fprintf (stderr, "\n");
+    }
 }
 
 # define YY_REDUCE_PRINT(Rule)		\
 do {					\
   if (yydebug)				\
-    yy_reduce_print (Rule);		\
-} while (0)
+    yy_reduce_print (yyvsp, Rule); \
+} while (YYID (0))
 
 /* Nonzero means print parse trace.  It is left uninitialized so that
    multiple parsers can coexist.  */
@@ -907,42 +1051,44 @@
 #if YYERROR_VERBOSE
 
 # ifndef yystrlen
-#  if defined (__GLIBC__) && defined (_STRING_H)
+#  if defined __GLIBC__ && defined _STRING_H
 #   define yystrlen strlen
 #  else
 /* Return the length of YYSTR.  */
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
 static YYSIZE_T
-#   if defined (__STDC__) || defined (__cplusplus)
 yystrlen (const char *yystr)
-#   else
+#else
+static YYSIZE_T
 yystrlen (yystr)
-     const char *yystr;
-#   endif
+    const char *yystr;
+#endif
 {
-  const char *yys = yystr;
-
-  while (*yys++ != '\0')
+  YYSIZE_T yylen;
+  for (yylen = 0; yystr[yylen]; yylen++)
     continue;
-
-  return yys - yystr - 1;
+  return yylen;
 }
 #  endif
 # endif
 
 # ifndef yystpcpy
-#  if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
+#  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
 #   define yystpcpy stpcpy
 #  else
 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
    YYDEST.  */
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
 static char *
-#   if defined (__STDC__) || defined (__cplusplus)
 yystpcpy (char *yydest, const char *yysrc)
-#   else
+#else
+static char *
 yystpcpy (yydest, yysrc)
-     char *yydest;
-     const char *yysrc;
-#   endif
+    char *yydest;
+    const char *yysrc;
+#endif
 {
   char *yyd = yydest;
   const char *yys = yysrc;
@@ -968,7 +1114,7 @@
 {
   if (*yystr == '"')
     {
-      size_t yyn = 0;
+      YYSIZE_T yyn = 0;
       char const *yyp = yystr;
 
       for (;;)
@@ -1003,53 +1149,123 @@
 }
 # endif
 
-#endif /* YYERROR_VERBOSE */
+/* Copy into YYRESULT an error message about the unexpected token
+   YYCHAR while in state YYSTATE.  Return the number of bytes copied,
+   including the terminating null byte.  If YYRESULT is null, do not
+   copy anything; just return the number of bytes that would be
+   copied.  As a special case, return 0 if an ordinary "syntax error"
+   message will do.  Return YYSIZE_MAXIMUM if overflow occurs during
+   size calculation.  */
+static YYSIZE_T
+yysyntax_error (char *yyresult, int yystate, int yychar)
+{
+  int yyn = yypact[yystate];
 
-\f
+  if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
+    return 0;
+  else
+    {
+      int yytype = YYTRANSLATE (yychar);
+      YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
+      YYSIZE_T yysize = yysize0;
+      YYSIZE_T yysize1;
+      int yysize_overflow = 0;
+      enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
+      char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
+      int yyx;
+
+# if 0
+      /* This is so xgettext sees the translatable formats that are
+	 constructed on the fly.  */
+      YY_("syntax error, unexpected %s");
+      YY_("syntax error, unexpected %s, expecting %s");
+      YY_("syntax error, unexpected %s, expecting %s or %s");
+      YY_("syntax error, unexpected %s, expecting %s or %s or %s");
+      YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
+# endif
+      char *yyfmt;
+      char const *yyf;
+      static char const yyunexpected[] = "syntax error, unexpected %s";
+      static char const yyexpecting[] = ", expecting %s";
+      static char const yyor[] = " or %s";
+      char yyformat[sizeof yyunexpected
+		    + sizeof yyexpecting - 1
+		    + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
+		       * (sizeof yyor - 1))];
+      char const *yyprefix = yyexpecting;
+
+      /* Start YYX at -YYN if negative to avoid negative indexes in
+	 YYCHECK.  */
+      int yyxbegin = yyn < 0 ? -yyn : 0;
+
+      /* Stay within bounds of both yycheck and yytname.  */
+      int yychecklim = YYLAST - yyn + 1;
+      int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
+      int yycount = 1;
 
-#if YYDEBUG
-/*--------------------------------.
-| Print this symbol on YYOUTPUT.  |
-`--------------------------------*/
+      yyarg[0] = yytname[yytype];
+      yyfmt = yystpcpy (yyformat, yyunexpected);
 
-#if defined (__STDC__) || defined (__cplusplus)
-static void
-yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
-#else
-static void
-yysymprint (yyoutput, yytype, yyvaluep)
-    FILE *yyoutput;
-    int yytype;
-    YYSTYPE *yyvaluep;
-#endif
-{
-  /* Pacify ``unused variable'' warnings.  */
-  (void) yyvaluep;
+      for (yyx = yyxbegin; yyx < yyxend; ++yyx)
+	if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
+	  {
+	    if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
+	      {
+		yycount = 1;
+		yysize = yysize0;
+		yyformat[sizeof yyunexpected - 1] = '\0';
+		break;
+	      }
+	    yyarg[yycount++] = yytname[yyx];
+	    yysize1 = yysize + yytnamerr (0, yytname[yyx]);
+	    yysize_overflow |= (yysize1 < yysize);
+	    yysize = yysize1;
+	    yyfmt = yystpcpy (yyfmt, yyprefix);
+	    yyprefix = yyor;
+	  }
 
-  if (yytype < YYNTOKENS)
-    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
-  else
-    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
+      yyf = YY_(yyformat);
+      yysize1 = yysize + yystrlen (yyf);
+      yysize_overflow |= (yysize1 < yysize);
+      yysize = yysize1;
 
+      if (yysize_overflow)
+	return YYSIZE_MAXIMUM;
 
-# ifdef YYPRINT
-  if (yytype < YYNTOKENS)
-    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
-# endif
-  switch (yytype)
-    {
-      default:
-        break;
+      if (yyresult)
+	{
+	  /* Avoid sprintf, as that infringes on the user's name space.
+	     Don't have undefined behavior even if the translation
+	     produced a string with the wrong number of "%s"s.  */
+	  char *yyp = yyresult;
+	  int yyi = 0;
+	  while ((*yyp = *yyf) != '\0')
+	    {
+	      if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
+		{
+		  yyp += yytnamerr (yyp, yyarg[yyi++]);
+		  yyf += 2;
+		}
+	      else
+		{
+		  yyp++;
+		  yyf++;
+		}
+	    }
+	}
+      return yysize;
     }
-  YYFPRINTF (yyoutput, ")");
 }
+#endif /* YYERROR_VERBOSE */
+\f
 
-#endif /* ! YYDEBUG */
 /*-----------------------------------------------.
 | Release the memory associated to this symbol.  |
 `-----------------------------------------------*/
 
-#if defined (__STDC__) || defined (__cplusplus)
+/*ARGSUSED*/
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
 static void
 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
 #else
@@ -1060,8 +1276,7 @@
     YYSTYPE *yyvaluep;
 #endif
 {
-  /* Pacify ``unused variable'' warnings.  */
-  (void) yyvaluep;
+  YYUSE (yyvaluep);
 
   if (!yymsg)
     yymsg = "Deleting";
@@ -1071,7 +1286,7 @@
     {
 
       default:
-        break;
+	break;
     }
 }
 \f
@@ -1079,13 +1294,13 @@
 /* Prevent warnings from -Wmissing-prototypes.  */
 
 #ifdef YYPARSE_PARAM
-# if defined (__STDC__) || defined (__cplusplus)
+#if defined __STDC__ || defined __cplusplus
 int yyparse (void *YYPARSE_PARAM);
-# else
+#else
 int yyparse ();
-# endif
+#endif
 #else /* ! YYPARSE_PARAM */
-#if defined (__STDC__) || defined (__cplusplus)
+#if defined __STDC__ || defined __cplusplus
 int yyparse (void);
 #else
 int yyparse ();
@@ -1110,14 +1325,18 @@
 `----------*/
 
 #ifdef YYPARSE_PARAM
-# if defined (__STDC__) || defined (__cplusplus)
-int yyparse (void *YYPARSE_PARAM)
-# else
-int yyparse (YYPARSE_PARAM)
-  void *YYPARSE_PARAM;
-# endif
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+int
+yyparse (void *YYPARSE_PARAM)
+#else
+int
+yyparse (YYPARSE_PARAM)
+    void *YYPARSE_PARAM;
+#endif
 #else /* ! YYPARSE_PARAM */
-#if defined (__STDC__) || defined (__cplusplus)
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
 int
 yyparse (void)
 #else
@@ -1135,6 +1354,12 @@
   int yyerrstatus;
   /* Look-ahead token as an internal (translated) token number.  */
   int yytoken = 0;
+#if YYERROR_VERBOSE
+  /* Buffer for error messages, and its allocated size.  */
+  char yymsgbuf[128];
+  char *yymsg = yymsgbuf;
+  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
+#endif
 
   /* Three stacks and their tools:
      `yyss': related to states,
@@ -1145,9 +1370,9 @@
      to reallocate them elsewhere.  */
 
   /* The state stack.  */
-  short int yyssa[YYINITDEPTH];
-  short int *yyss = yyssa;
-  short int *yyssp;
+  yytype_int16 yyssa[YYINITDEPTH];
+  yytype_int16 *yyss = yyssa;
+  yytype_int16 *yyssp;
 
   /* The semantic value stack.  */
   YYSTYPE yyvsa[YYINITDEPTH];
@@ -1156,7 +1381,7 @@
 
 
 
-#define YYPOPSTACK   (yyvsp--, yyssp--)
+#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
 
   YYSIZE_T yystacksize = YYINITDEPTH;
 
@@ -1165,9 +1390,9 @@
   YYSTYPE yyval;
 
 
-  /* When reducing, the number of symbols on the RHS of the reduced
-     rule.  */
-  int yylen;
+  /* The number of symbols on the RHS of the reduced rule.
+     Keep to zero when no symbol should be popped.  */
+  int yylen = 0;
 
   YYDPRINTF ((stderr, "Starting parse\n"));
 
@@ -1191,8 +1416,7 @@
 `------------------------------------------------------------*/
  yynewstate:
   /* In all cases, when you get here, the value and location stacks
-     have just been pushed. so pushing a state here evens the stacks.
-     */
+     have just been pushed.  So pushing a state here evens the stacks.  */
   yyssp++;
 
  yysetstate:
@@ -1205,11 +1429,11 @@
 
 #ifdef yyoverflow
       {
-	/* Give user a chance to reallocate the stack. Use copies of
+	/* Give user a chance to reallocate the stack.  Use copies of
 	   these so that the &'s don't force the real ones into
 	   memory.  */
 	YYSTYPE *yyvs1 = yyvs;
-	short int *yyss1 = yyss;
+	yytype_int16 *yyss1 = yyss;
 
 
 	/* Each stack pointer address is followed by the size of the
@@ -1237,7 +1461,7 @@
 	yystacksize = YYMAXDEPTH;
 
       {
-	short int *yyss1 = yyss;
+	yytype_int16 *yyss1 = yyss;
 	union yyalloc *yyptr =
 	  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
 	if (! yyptr)
@@ -1272,12 +1496,10 @@
 `-----------*/
 yybackup:
 
-/* Do appropriate processing given the current state.  */
-/* Read a look-ahead token if we need one and don't already have one.  */
-/* yyresume: */
+  /* Do appropriate processing given the current state.  Read a
+     look-ahead token if we need one and don't already have one.  */
 
   /* First try to decide what to do without reference to look-ahead token.  */
-
   yyn = yypact[yystate];
   if (yyn == YYPACT_NINF)
     goto yydefault;
@@ -1319,22 +1541,21 @@
   if (yyn == YYFINAL)
     YYACCEPT;
 
+  /* Count tokens shifted since error; after three, turn off error
+     status.  */
+  if (yyerrstatus)
+    yyerrstatus--;
+
   /* Shift the look-ahead token.  */
   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
 
-  /* Discard the token being shifted unless it is eof.  */
+  /* Discard the shifted token unless it is eof.  */
   if (yychar != YYEOF)
     yychar = YYEMPTY;
 
+  yystate = yyn;
   *++yyvsp = yylval;
 
-
-  /* Count tokens shifted since error; after three, turn off error
-     status.  */
-  if (yyerrstatus)
-    yyerrstatus--;
-
-  yystate = yyn;
   goto yynewstate;
 
 
@@ -1370,134 +1591,134 @@
   switch (yyn)
     {
         case 3:
-#line 145 "../../../redhat/stock-elfutils/src/ldscript.y"
-    { add_versions ((yyvsp[0].version)); }
+#line 145 "ldscript.y"
+    { add_versions ((yyvsp[(2) - (2)].version)); }
     break;
 
   case 6:
-#line 153 "../../../redhat/stock-elfutils/src/ldscript.y"
+#line 153 "ldscript.y"
     {
 		      if (likely (ld_state.entry == NULL))
-			ld_state.entry = (yyvsp[-2].str);
+			ld_state.entry = (yyvsp[(3) - (5)].str);
 		    }
     break;
 
   case 7:
-#line 158 "../../../redhat/stock-elfutils/src/ldscript.y"
+#line 158 "ldscript.y"
     {
-		      ld_new_searchdir ((yyvsp[-2].str));
+		      ld_new_searchdir ((yyvsp[(3) - (5)].str));
 		    }
     break;
 
   case 8:
-#line 162 "../../../redhat/stock-elfutils/src/ldscript.y"
+#line 162 "ldscript.y"
     {
 		      if (likely (ld_state.pagesize == 0))
-			ld_state.pagesize = (yyvsp[-2].num);
+			ld_state.pagesize = (yyvsp[(3) - (5)].num);
 		    }
     break;
 
   case 9:
-#line 167 "../../../redhat/stock-elfutils/src/ldscript.y"
+#line 167 "ldscript.y"
     {
 		      if (likely (ld_state.interp == NULL)
 			  && ld_state.file_type != dso_file_type)
-			ld_state.interp = (yyvsp[-2].str);
+			ld_state.interp = (yyvsp[(3) - (5)].str);
 		    }
     break;
 
   case 10:
-#line 173 "../../../redhat/stock-elfutils/src/ldscript.y"
+#line 173 "ldscript.y"
     {
-		      new_segment ((yyvsp[-3].num), (yyvsp[-1].output_rule));
+		      new_segment ((yyvsp[(2) - (5)].num), (yyvsp[(4) - (5)].output_rule));
 		    }
     break;
 
   case 11:
-#line 177 "../../../redhat/stock-elfutils/src/ldscript.y"
+#line 177 "ldscript.y"
     {
 		      fputs_unlocked (gettext ("mode for segment invalid\n"),
 				      stderr);
-		      new_segment (0, (yyvsp[-1].output_rule));
+		      new_segment (0, (yyvsp[(4) - (5)].output_rule));
 		    }
     break;
 
   case 12:
-#line 183 "../../../redhat/stock-elfutils/src/ldscript.y"
+#line 183 "ldscript.y"
     {
 		      /* First little optimization.  If there is only one
 			 file in the group don't do anything.  */
-		      if ((yyvsp[-1].filename_list) != (yyvsp[-1].filename_list)->next)
+		      if ((yyvsp[(3) - (4)].filename_list) != (yyvsp[(3) - (4)].filename_list)->next)
 			{
-			  (yyvsp[-1].filename_list)->next->group_start = 1;
-			  (yyvsp[-1].filename_list)->group_end = 1;
+			  (yyvsp[(3) - (4)].filename_list)->next->group_start = 1;
+			  (yyvsp[(3) - (4)].filename_list)->group_end = 1;
 			}
-		      add_inputfiles ((yyvsp[-1].filename_list));
+		      add_inputfiles ((yyvsp[(3) - (4)].filename_list));
 		    }
     break;
 
   case 13:
-#line 194 "../../../redhat/stock-elfutils/src/ldscript.y"
-    { add_inputfiles ((yyvsp[-1].filename_list)); }
+#line 194 "ldscript.y"
+    { add_inputfiles ((yyvsp[(3) - (4)].filename_list)); }
     break;
 
   case 14:
-#line 196 "../../../redhat/stock-elfutils/src/ldscript.y"
-    { add_inputfiles (mark_as_needed ((yyvsp[-1].filename_list))); }
+#line 196 "ldscript.y"
+    { add_inputfiles (mark_as_needed ((yyvsp[(3) - (4)].filename_list))); }
     break;
 
   case 15:
-#line 198 "../../../redhat/stock-elfutils/src/ldscript.y"
-    { add_versions ((yyvsp[-1].version)); }
+#line 198 "ldscript.y"
+    { add_versions ((yyvsp[(3) - (4)].version)); }
     break;
 
   case 16:
-#line 200 "../../../redhat/stock-elfutils/src/ldscript.y"
+#line 200 "ldscript.y"
     { /* XXX TODO */ }
     break;
 
   case 17:
-#line 204 "../../../redhat/stock-elfutils/src/ldscript.y"
+#line 204 "ldscript.y"
     {
-		      (yyvsp[0].output_rule)->next = (yyvsp[-1].output_rule)->next;
-		      (yyval.output_rule) = (yyvsp[-1].output_rule)->next = (yyvsp[0].output_rule);
+		      (yyvsp[(2) - (2)].output_rule)->next = (yyvsp[(1) - (2)].output_rule)->next;
+		      (yyval.output_rule) = (yyvsp[(1) - (2)].output_rule)->next = (yyvsp[(2) - (2)].output_rule);
 		    }
     break;
 
   case 18:
-#line 209 "../../../redhat/stock-elfutils/src/ldscript.y"
-    { (yyval.output_rule) = (yyvsp[0].output_rule); }
+#line 209 "ldscript.y"
+    { (yyval.output_rule) = (yyvsp[(1) - (1)].output_rule); }
     break;
 
   case 19:
-#line 213 "../../../redhat/stock-elfutils/src/ldscript.y"
+#line 213 "ldscript.y"
     {
 		      (yyval.output_rule) = new_output_rule (output_assignment);
-		      (yyval.output_rule)->val.assignment = (yyvsp[-1].assignment);
+		      (yyval.output_rule)->val.assignment = (yyvsp[(1) - (2)].assignment);
 		    }
     break;
 
   case 20:
-#line 218 "../../../redhat/stock-elfutils/src/ldscript.y"
+#line 218 "ldscript.y"
     {
 		      (yyval.output_rule) = new_output_rule (output_section);
-		      (yyval.output_rule)->val.section.name = (yyvsp[-3].str);
-		      (yyval.output_rule)->val.section.input = (yyvsp[-1].input_rule)->next;
+		      (yyval.output_rule)->val.section.name = (yyvsp[(1) - (4)].str);
+		      (yyval.output_rule)->val.section.input = (yyvsp[(3) - (4)].input_rule)->next;
 		      if (ld_state.strip == strip_debug
-			  && ebl_debugscn_p (ld_state.ebl, (yyvsp[-3].str)))
+			  && ebl_debugscn_p (ld_state.ebl, (yyvsp[(1) - (4)].str)))
 			(yyval.output_rule)->val.section.ignored = true;
 		      else
 			(yyval.output_rule)->val.section.ignored = false;
-		      (yyvsp[-1].input_rule)->next = NULL;
+		      (yyvsp[(3) - (4)].input_rule)->next = NULL;
 		    }
     break;
 
   case 21:
-#line 230 "../../../redhat/stock-elfutils/src/ldscript.y"
+#line 230 "ldscript.y"
     {
 		      /* This is a short cut for "ID { *(ID) }".  */
 		      (yyval.output_rule) = new_output_rule (output_section);
-		      (yyval.output_rule)->val.section.name = (yyvsp[-1].str);
+		      (yyval.output_rule)->val.section.name = (yyvsp[(1) - (2)].str);
 		      (yyval.output_rule)->val.section.input = new_input_rule (input_section);
 		      (yyval.output_rule)->val.section.input->next = NULL;
 		      (yyval.output_rule)->val.section.input->val.section =
@@ -1507,10 +1728,10 @@
 		      (yyval.output_rule)->val.section.input->val.section->filemask = NULL;
 		      (yyval.output_rule)->val.section.input->val.section->excludemask = NULL;
 		      (yyval.output_rule)->val.section.input->val.section->section_name =
-			new_input_section_name ((yyvsp[-1].str), false);
+			new_input_section_name ((yyvsp[(1) - (2)].str), false);
 		      (yyval.output_rule)->val.section.input->val.section->keep_flag = false;
 		      if (ld_state.strip == strip_debug
-			  && ebl_debugscn_p (ld_state.ebl, (yyvsp[-1].str)))
+			  && ebl_debugscn_p (ld_state.ebl, (yyvsp[(1) - (2)].str)))
 			(yyval.output_rule)->val.section.ignored = true;
 		      else
 			(yyval.output_rule)->val.section.ignored = false;
@@ -1518,312 +1739,310 @@
     break;
 
   case 22:
-#line 254 "../../../redhat/stock-elfutils/src/ldscript.y"
-    { (yyval.assignment) = new_assignment ((yyvsp[-2].str), (yyvsp[0].expr), false); }
+#line 254 "ldscript.y"
+    { (yyval.assignment) = new_assignment ((yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].expr), false); }
     break;
 
   case 23:
-#line 256 "../../../redhat/stock-elfutils/src/ldscript.y"
-    { (yyval.assignment) = new_assignment ((yyvsp[-3].str), (yyvsp[-1].expr), true); }
+#line 256 "ldscript.y"
+    { (yyval.assignment) = new_assignment ((yyvsp[(3) - (6)].str), (yyvsp[(5) - (6)].expr), true); }
     break;
 
   case 24:
-#line 260 "../../../redhat/stock-elfutils/src/ldscript.y"
+#line 260 "ldscript.y"
     {
-		      (yyvsp[0].input_rule)->next = (yyvsp[-1].input_rule)->next;
-		      (yyval.input_rule) = (yyvsp[-1].input_rule)->next = (yyvsp[0].input_rule);
+		      (yyvsp[(2) - (2)].input_rule)->next = (yyvsp[(1) - (2)].input_rule)->next;
+		      (yyval.input_rule) = (yyvsp[(1) - (2)].input_rule)->next = (yyvsp[(2) - (2)].input_rule);
 		    }
     break;
 
   case 25:
-#line 265 "../../../redhat/stock-elfutils/src/ldscript.y"
-    { (yyval.input_rule) = (yyvsp[0].input_rule); }
+#line 265 "ldscript.y"
+    { (yyval.input_rule) = (yyvsp[(1) - (1)].input_rule); }
     break;
 
   case 26:
-#line 269 "../../../redhat/stock-elfutils/src/ldscript.y"
+#line 269 "ldscript.y"
     {
 		      (yyval.input_rule) = new_input_rule (input_section);
-		      (yyval.input_rule)->val.section = (yyvsp[0].filemask_section_name);
+		      (yyval.input_rule)->val.section = (yyvsp[(1) - (1)].filemask_section_name);
 		    }
     break;
 
   case 27:
-#line 274 "../../../redhat/stock-elfutils/src/ldscript.y"
+#line 274 "ldscript.y"
     {
-		      (yyvsp[-1].filemask_section_name)->keep_flag = true;
+		      (yyvsp[(3) - (4)].filemask_section_name)->keep_flag = true;
 
 		      (yyval.input_rule) = new_input_rule (input_section);
-		      (yyval.input_rule)->val.section = (yyvsp[-1].filemask_section_name);
+		      (yyval.input_rule)->val.section = (yyvsp[(3) - (4)].filemask_section_name);
 		    }
     break;
 
   case 28:
-#line 281 "../../../redhat/stock-elfutils/src/ldscript.y"
+#line 281 "ldscript.y"
     {
 		      (yyval.input_rule) = new_input_rule (input_assignment);
-		      (yyval.input_rule)->val.assignment = (yyvsp[-1].assignment);
+		      (yyval.input_rule)->val.assignment = (yyvsp[(1) - (2)].assignment);
 		    }
     break;
 
   case 29:
-#line 288 "../../../redhat/stock-elfutils/src/ldscript.y"
+#line 288 "ldscript.y"
     {
 		      (yyval.filemask_section_name) = (struct filemask_section_name *)
 			obstack_alloc (&ld_state.smem, sizeof (*(yyval.filemask_section_name)));
-		      (yyval.filemask_section_name)->filemask = (yyvsp[-4].str);
-		      (yyval.filemask_section_name)->excludemask = (yyvsp[-2].str);
-		      (yyval.filemask_section_name)->section_name = (yyvsp[-1].sectionname);
+		      (yyval.filemask_section_name)->filemask = (yyvsp[(1) - (5)].str);
+		      (yyval.filemask_section_name)->excludemask = (yyvsp[(3) - (5)].str);
+		      (yyval.filemask_section_name)->section_name = (yyvsp[(4) - (5)].sectionname);
 		      (yyval.filemask_section_name)->keep_flag = false;
 		    }
     break;
 
   case 30:
-#line 299 "../../../redhat/stock-elfutils/src/ldscript.y"
-    { (yyval.sectionname) = new_input_section_name ((yyvsp[0].str), false); }
+#line 299 "ldscript.y"
+    { (yyval.sectionname) = new_input_section_name ((yyvsp[(1) - (1)].str), false); }
     break;
 
   case 31:
-#line 301 "../../../redhat/stock-elfutils/src/ldscript.y"
-    { (yyval.sectionname) = new_input_section_name ((yyvsp[-1].str), true); }
+#line 301 "ldscript.y"
+    { (yyval.sectionname) = new_input_section_name ((yyvsp[(3) - (4)].str), true); }
     break;
 
   case 32:
-#line 305 "../../../redhat/stock-elfutils/src/ldscript.y"
-    { (yyval.str) = (yyvsp[-1].str); }
+#line 305 "ldscript.y"
+    { (yyval.str) = (yyvsp[(3) - (4)].str); }
     break;
 
   case 33:
-#line 307 "../../../redhat/stock-elfutils/src/ldscript.y"
+#line 307 "ldscript.y"
     { (yyval.str) = NULL; }
     break;
 
   case 34:
-#line 311 "../../../redhat/stock-elfutils/src/ldscript.y"
+#line 311 "ldscript.y"
     {
 		      (yyval.expr) = new_expr (exp_align);
-		      (yyval.expr)->val.child = (yyvsp[-1].expr);
+		      (yyval.expr)->val.child = (yyvsp[(3) - (4)].expr);
 		    }
     break;
 
   case 35:
-#line 316 "../../../redhat/stock-elfutils/src/ldscript.y"
-    { (yyval.expr) = (yyvsp[-1].expr); }
+#line 316 "ldscript.y"
+    { (yyval.expr) = (yyvsp[(2) - (3)].expr); }
     break;
 
   case 36:
-#line 318 "../../../redhat/stock-elfutils/src/ldscript.y"
+#line 318 "ldscript.y"
     {
 		      (yyval.expr) = new_expr (exp_mult);
-		      (yyval.expr)->val.binary.left = (yyvsp[-2].expr);
-		      (yyval.expr)->val.binary.right = (yyvsp[0].expr);
+		      (yyval.expr)->val.binary.left = (yyvsp[(1) - (3)].expr);
+		      (yyval.expr)->val.binary.right = (yyvsp[(3) - (3)].expr);
 		    }
     break;
 
   case 37:
-#line 324 "../../../redhat/stock-elfutils/src/ldscript.y"
+#line 324 "ldscript.y"
     {
-		      (yyval.expr) = new_expr ((yyvsp[-1].op));
-		      (yyval.expr)->val.binary.left = (yyvsp[-2].expr);
-		      (yyval.expr)->val.binary.right = (yyvsp[0].expr);
+		      (yyval.expr) = new_expr ((yyvsp[(2) - (3)].op));
+		      (yyval.expr)->val.binary.left = (yyvsp[(1) - (3)].expr);
+		      (yyval.expr)->val.binary.right = (yyvsp[(3) - (3)].expr);
 		    }
     break;
 
   case 38:
-#line 330 "../../../redhat/stock-elfutils/src/ldscript.y"
+#line 330 "ldscript.y"
     {
-		      (yyval.expr) = new_expr ((yyvsp[-1].op));
-		      (yyval.expr)->val.binary.left = (yyvsp[-2].expr);
-		      (yyval.expr)->val.binary.right = (yyvsp[0].expr);
+		      (yyval.expr) = new_expr ((yyvsp[(2) - (3)].op));
+		      (yyval.expr)->val.binary.left = (yyvsp[(1) - (3)].expr);
+		      (yyval.expr)->val.binary.right = (yyvsp[(3) - (3)].expr);
 		    }
     break;
 
   case 39:
-#line 336 "../../../redhat/stock-elfutils/src/ldscript.y"
+#line 336 "ldscript.y"
     {
 		      (yyval.expr) = new_expr (exp_and);
-		      (yyval.expr)->val.binary.left = (yyvsp[-2].expr);
-		      (yyval.expr)->val.binary.right = (yyvsp[0].expr);
+		      (yyval.expr)->val.binary.left = (yyvsp[(1) - (3)].expr);
+		      (yyval.expr)->val.binary.right = (yyvsp[(3) - (3)].expr);
 		    }
     break;
 
   case 40:
-#line 342 "../../../redhat/stock-elfutils/src/ldscript.y"
+#line 342 "ldscript.y"
     {
 		      (yyval.expr) = new_expr (exp_or);
-		      (yyval.expr)->val.binary.left = (yyvsp[-2].expr);
-		      (yyval.expr)->val.binary.right = (yyvsp[0].expr);
+		      (yyval.expr)->val.binary.left = (yyvsp[(1) - (3)].expr);
+		      (yyval.expr)->val.binary.right = (yyvsp[(3) - (3)].expr);
 		    }
     break;
 
   case 41:
-#line 348 "../../../redhat/stock-elfutils/src/ldscript.y"
+#line 348 "ldscript.y"
     {
 		      (yyval.expr) = new_expr (exp_num);
-		      (yyval.expr)->val.num = (yyvsp[0].num);
+		      (yyval.expr)->val.num = (yyvsp[(1) - (1)].num);
 		    }
     break;
 
   case 42:
-#line 353 "../../../redhat/stock-elfutils/src/ldscript.y"
+#line 353 "ldscript.y"
     {
 		      (yyval.expr) = new_expr (exp_id);
-		      (yyval.expr)->val.str = (yyvsp[0].str);
+		      (yyval.expr)->val.str = (yyvsp[(1) - (1)].str);
 		    }
     break;
 
   case 43:
-#line 358 "../../../redhat/stock-elfutils/src/ldscript.y"
+#line 358 "ldscript.y"
     { (yyval.expr) = new_expr (exp_sizeof_headers); }
     break;
 
   case 44:
-#line 360 "../../../redhat/stock-elfutils/src/ldscript.y"
+#line 360 "ldscript.y"
     { (yyval.expr) = new_expr (exp_pagesize); }
     break;
 
   case 45:
-#line 364 "../../../redhat/stock-elfutils/src/ldscript.y"
+#line 364 "ldscript.y"
     {
-		      (yyvsp[0].filename_list)->next = (yyvsp[-2].filename_list)->next;
-		      (yyval.filename_list) = (yyvsp[-2].filename_list)->next = (yyvsp[0].filename_list);
+		      (yyvsp[(3) - (3)].filename_list)->next = (yyvsp[(1) - (3)].filename_list)->next;
+		      (yyval.filename_list) = (yyvsp[(1) - (3)].filename_list)->next = (yyvsp[(3) - (3)].filename_list);
 		    }
     break;
 
   case 46:
-#line 369 "../../../redhat/stock-elfutils/src/ldscript.y"
-    { (yyval.filename_list) = (yyvsp[0].filename_list); }
+#line 369 "ldscript.y"
+    { (yyval.filename_list) = (yyvsp[(1) - (1)].filename_list); }
     break;
 
   case 49:
-#line 377 "../../../redhat/stock-elfutils/src/ldscript.y"
+#line 377 "ldscript.y"
     {
 		      /* First little optimization.  If there is only one
 			 file in the group don't do anything.  */
-		      if ((yyvsp[-1].filename_list) != (yyvsp[-1].filename_list)->next)
+		      if ((yyvsp[(3) - (4)].filename_list) != (yyvsp[(3) - (4)].filename_list)->next)
 			{
-			  (yyvsp[-1].filename_list)->next->group_start = 1;
-			  (yyvsp[-1].filename_list)->group_end = 1;
+			  (yyvsp[(3) - (4)].filename_list)->next->group_start = 1;
+			  (yyvsp[(3) - (4)].filename_list)->group_end = 1;
 			}
-		      (yyval.filename_list) = (yyvsp[-1].filename_list);
+		      (yyval.filename_list) = (yyvsp[(3) - (4)].filename_list);
 		    }
     break;
 
   case 50:
-#line 388 "../../../redhat/stock-elfutils/src/ldscript.y"
-    { (yyval.filename_list) = mark_as_needed ((yyvsp[-1].filename_list)); }
+#line 388 "ldscript.y"
+    { (yyval.filename_list) = mark_as_needed ((yyvsp[(3) - (4)].filename_list)); }
     break;
 
   case 51:
-#line 390 "../../../redhat/stock-elfutils/src/ldscript.y"
-    { (yyval.filename_list) = new_filename_listelem ((yyvsp[0].str)); }
+#line 390 "ldscript.y"
+    { (yyval.filename_list) = new_filename_listelem ((yyvsp[(1) - (1)].str)); }
     break;
 
   case 52:
-#line 395 "../../../redhat/stock-elfutils/src/ldscript.y"
+#line 395 "ldscript.y"
     {
-		      (yyvsp[0].version)->next = (yyvsp[-1].version)->next;
-		      (yyval.version) = (yyvsp[-1].version)->next = (yyvsp[0].version);
+		      (yyvsp[(2) - (2)].version)->next = (yyvsp[(1) - (2)].version)->next;
+		      (yyval.version) = (yyvsp[(1) - (2)].version)->next = (yyvsp[(2) - (2)].version);
 		    }
     break;
 
   case 53:
-#line 400 "../../../redhat/stock-elfutils/src/ldscript.y"
-    { (yyval.version) = (yyvsp[0].version); }
+#line 400 "ldscript.y"
+    { (yyval.version) = (yyvsp[(1) - (1)].version); }
     break;
 
   case 54:
-#line 404 "../../../redhat/stock-elfutils/src/ldscript.y"
+#line 404 "ldscript.y"
     {
-		      (yyvsp[-2].version)->versionname = "";
-		      (yyvsp[-2].version)->parentname = NULL;
-		      (yyval.version) = (yyvsp[-2].version);
+		      (yyvsp[(2) - (4)].version)->versionname = "";
+		      (yyvsp[(2) - (4)].version)->parentname = NULL;
+		      (yyval.version) = (yyvsp[(2) - (4)].version);
 		    }
     break;
 
   case 55:
-#line 410 "../../../redhat/stock-elfutils/src/ldscript.y"
+#line 410 "ldscript.y"
     {
-		      (yyvsp[-2].version)->versionname = (yyvsp[-4].str);
-		      (yyvsp[-2].version)->parentname = NULL;
-		      (yyval.version) = (yyvsp[-2].version);
+		      (yyvsp[(3) - (5)].version)->versionname = (yyvsp[(1) - (5)].str);
+		      (yyvsp[(3) - (5)].version)->parentname = NULL;
+		      (yyval.version) = (yyvsp[(3) - (5)].version);
 		    }
     break;
 
   case 56:
-#line 416 "../../../redhat/stock-elfutils/src/ldscript.y"
+#line 416 "ldscript.y"
     {
-		      (yyvsp[-3].version)->versionname = (yyvsp[-5].str);
-		      (yyvsp[-3].version)->parentname = (yyvsp[-1].str);
-		      (yyval.version) = (yyvsp[-3].version);
+		      (yyvsp[(3) - (6)].version)->versionname = (yyvsp[(1) - (6)].str);
+		      (yyvsp[(3) - (6)].version)->parentname = (yyvsp[(5) - (6)].str);
+		      (yyval.version) = (yyvsp[(3) - (6)].version);
 		    }
     break;
 
   case 57:
-#line 425 "../../../redhat/stock-elfutils/src/ldscript.y"
-    { (yyval.version) = merge_versions ((yyvsp[-1].version), (yyvsp[0].version)); }
+#line 425 "ldscript.y"
+    { (yyval.version) = merge_versions ((yyvsp[(1) - (2)].version), (yyvsp[(2) - (2)].version)); }
     break;
 
   case 58:
-#line 427 "../../../redhat/stock-elfutils/src/ldscript.y"
-    { (yyval.version) = (yyvsp[0].version); }
+#line 427 "ldscript.y"
+    { (yyval.version) = (yyvsp[(1) - (1)].version); }
     break;
 
   case 59:
-#line 431 "../../../redhat/stock-elfutils/src/ldscript.y"
-    { (yyval.version) = new_version (NULL, (yyvsp[0].id_list)); }
+#line 431 "ldscript.y"
+    { (yyval.version) = new_version (NULL, (yyvsp[(2) - (2)].id_list)); }
     break;
 
   case 60:
-#line 433 "../../../redhat/stock-elfutils/src/ldscript.y"
-    { (yyval.version) = new_version ((yyvsp[0].id_list), NULL); }
+#line 433 "ldscript.y"
+    { (yyval.version) = new_version ((yyvsp[(2) - (2)].id_list), NULL); }
     break;
 
   case 61:
-#line 438 "../../../redhat/stock-elfutils/src/ldscript.y"
+#line 438 "ldscript.y"
     {
-		      struct id_list *newp = new_id_listelem ((yyvsp[-1].str));
-		      newp->next = (yyvsp[-2].id_list)->next;
-		      (yyval.id_list) = (yyvsp[-2].id_list)->next = newp;
+		      struct id_list *newp = new_id_listelem ((yyvsp[(2) - (3)].str));
+		      newp->next = (yyvsp[(1) - (3)].id_list)->next;
+		      (yyval.id_list) = (yyvsp[(1) - (3)].id_list)->next = newp;
 		    }
     break;
 
   case 62:
-#line 444 "../../../redhat/stock-elfutils/src/ldscript.y"
-    { (yyval.id_list) = new_id_listelem ((yyvsp[-1].str)); }
+#line 444 "ldscript.y"
+    { (yyval.id_list) = new_id_listelem ((yyvsp[(1) - (2)].str)); }
     break;
 
   case 63:
-#line 448 "../../../redhat/stock-elfutils/src/ldscript.y"
-    { (yyval.str) = (yyvsp[0].str); }
+#line 448 "ldscript.y"
+    { (yyval.str) = (yyvsp[(1) - (1)].str); }
     break;
 
   case 64:
-#line 450 "../../../redhat/stock-elfutils/src/ldscript.y"
-    { (yyval.str) = (yyvsp[0].str); }
+#line 450 "ldscript.y"
+    { (yyval.str) = (yyvsp[(1) - (1)].str); }
     break;
 
   case 65:
-#line 454 "../../../redhat/stock-elfutils/src/ldscript.y"
-    { (yyval.str) = (yyvsp[0].str); }
+#line 454 "ldscript.y"
+    { (yyval.str) = (yyvsp[(1) - (1)].str); }
     break;
 
   case 66:
-#line 456 "../../../redhat/stock-elfutils/src/ldscript.y"
+#line 456 "ldscript.y"
     { (yyval.str) = NULL; }
     break;
 
 
+/* Line 1267 of yacc.c.  */
+#line 2040 "ldscript.c"
       default: break;
     }
+  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
 
-/* Line 1126 of yacc.c.  */
-#line 1822 "ldscript.c"
-\f
-  yyvsp -= yylen;
-  yyssp -= yylen;
-
-
+  YYPOPSTACK (yylen);
+  yylen = 0;
   YY_STACK_PRINT (yyss, yyssp);
 
   *++yyvsp = yyval;
@@ -1852,110 +2071,41 @@
   if (!yyerrstatus)
     {
       ++yynerrs;
-#if YYERROR_VERBOSE
-      yyn = yypact[yystate];
-
-      if (YYPACT_NINF < yyn && yyn < YYLAST)
-	{
-	  int yytype = YYTRANSLATE (yychar);
-	  YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
-	  YYSIZE_T yysize = yysize0;
-	  YYSIZE_T yysize1;
-	  int yysize_overflow = 0;
-	  char *yymsg = 0;
-#	  define YYERROR_VERBOSE_ARGS_MAXIMUM 5
-	  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
-	  int yyx;
-
-#if 0
-	  /* This is so xgettext sees the translatable formats that are
-	     constructed on the fly.  */
-	  YY_("syntax error, unexpected %s");
-	  YY_("syntax error, unexpected %s, expecting %s");
-	  YY_("syntax error, unexpected %s, expecting %s or %s");
-	  YY_("syntax error, unexpected %s, expecting %s or %s or %s");
-	  YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
-#endif
-	  char *yyfmt;
-	  char const *yyf;
-	  static char const yyunexpected[] = "syntax error, unexpected %s";
-	  static char const yyexpecting[] = ", expecting %s";
-	  static char const yyor[] = " or %s";
-	  char yyformat[sizeof yyunexpected
-			+ sizeof yyexpecting - 1
-			+ ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
-			   * (sizeof yyor - 1))];
-	  char const *yyprefix = yyexpecting;
-
-	  /* Start YYX at -YYN if negative to avoid negative indexes in
-	     YYCHECK.  */
-	  int yyxbegin = yyn < 0 ? -yyn : 0;
-
-	  /* Stay within bounds of both yycheck and yytname.  */
-	  int yychecklim = YYLAST - yyn;
-	  int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
-	  int yycount = 1;
-
-	  yyarg[0] = yytname[yytype];
-	  yyfmt = yystpcpy (yyformat, yyunexpected);
-
-	  for (yyx = yyxbegin; yyx < yyxend; ++yyx)
-	    if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
+#if ! YYERROR_VERBOSE
+      yyerror (YY_("syntax error"));
+#else
+      {
+	YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
+	if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
+	  {
+	    YYSIZE_T yyalloc = 2 * yysize;
+	    if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
+	      yyalloc = YYSTACK_ALLOC_MAXIMUM;
+	    if (yymsg != yymsgbuf)
+	      YYSTACK_FREE (yymsg);
+	    yymsg = (char *) YYSTACK_ALLOC (yyalloc);
+	    if (yymsg)
+	      yymsg_alloc = yyalloc;
+	    else
 	      {
-		if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
-		  {
-		    yycount = 1;
-		    yysize = yysize0;
-		    yyformat[sizeof yyunexpected - 1] = '\0';
-		    break;
-		  }
-		yyarg[yycount++] = yytname[yyx];
-		yysize1 = yysize + yytnamerr (0, yytname[yyx]);
-		yysize_overflow |= yysize1 < yysize;
-		yysize = yysize1;
-		yyfmt = yystpcpy (yyfmt, yyprefix);
-		yyprefix = yyor;
+		yymsg = yymsgbuf;
+		yymsg_alloc = sizeof yymsgbuf;
 	      }
+	  }
 
-	  yyf = YY_(yyformat);
-	  yysize1 = yysize + yystrlen (yyf);
-	  yysize_overflow |= yysize1 < yysize;
-	  yysize = yysize1;
-
-	  if (!yysize_overflow && yysize <= YYSTACK_ALLOC_MAXIMUM)
-	    yymsg = (char *) YYSTACK_ALLOC (yysize);
-	  if (yymsg)
-	    {
-	      /* Avoid sprintf, as that infringes on the user's name space.
-		 Don't have undefined behavior even if the translation
-		 produced a string with the wrong number of "%s"s.  */
-	      char *yyp = yymsg;
-	      int yyi = 0;
-	      while ((*yyp = *yyf))
-		{
-		  if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
-		    {
-		      yyp += yytnamerr (yyp, yyarg[yyi++]);
-		      yyf += 2;
-		    }
-		  else
-		    {
-		      yyp++;
-		      yyf++;
-		    }
-		}
-	      yyerror (yymsg);
-	      YYSTACK_FREE (yymsg);
-	    }
-	  else
-	    {
-	      yyerror (YY_("syntax error"));
+	if (0 < yysize && yysize <= yymsg_alloc)
+	  {
+	    (void) yysyntax_error (yymsg, yystate, yychar);
+	    yyerror (yymsg);
+	  }
+	else
+	  {
+	    yyerror (YY_("syntax error"));
+	    if (yysize != 0)
 	      goto yyexhaustedlab;
-	    }
-	}
-      else
-#endif /* YYERROR_VERBOSE */
-	yyerror (YY_("syntax error"));
+	  }
+      }
+#endif
     }
 
 
@@ -1966,14 +2116,15 @@
 	 error, discard it.  */
 
       if (yychar <= YYEOF)
-        {
+	{
 	  /* Return failure if at end of input.  */
 	  if (yychar == YYEOF)
 	    YYABORT;
-        }
+	}
       else
 	{
-	  yydestruct ("Error: discarding", yytoken, &yylval);
+	  yydestruct ("Error: discarding",
+		      yytoken, &yylval);
 	  yychar = YYEMPTY;
 	}
     }
@@ -1991,11 +2142,14 @@
   /* Pacify compilers like GCC when the user code never invokes
      YYERROR and the label yyerrorlab therefore never appears in user
      code.  */
-  if (0)
+  if (/*CONSTCOND*/ 0)
      goto yyerrorlab;
 
-yyvsp -= yylen;
-  yyssp -= yylen;
+  /* Do not reclaim the symbols of the rule which action triggered
+     this YYERROR.  */
+  YYPOPSTACK (yylen);
+  yylen = 0;
+  YY_STACK_PRINT (yyss, yyssp);
   yystate = *yyssp;
   goto yyerrlab1;
 
@@ -2025,8 +2179,9 @@
 	YYABORT;
 
 
-      yydestruct ("Error: popping", yystos[yystate], yyvsp);
-      YYPOPSTACK;
+      yydestruct ("Error: popping",
+		  yystos[yystate], yyvsp);
+      YYPOPSTACK (1);
       yystate = *yyssp;
       YY_STACK_PRINT (yyss, yyssp);
     }
@@ -2037,7 +2192,7 @@
   *++yyvsp = yylval;
 
 
-  /* Shift the error token. */
+  /* Shift the error token.  */
   YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
 
   yystate = yyn;
@@ -2072,21 +2227,30 @@
   if (yychar != YYEOF && yychar != YYEMPTY)
      yydestruct ("Cleanup: discarding lookahead",
 		 yytoken, &yylval);
+  /* Do not reclaim the symbols of the rule which action triggered
+     this YYABORT or YYACCEPT.  */
+  YYPOPSTACK (yylen);
+  YY_STACK_PRINT (yyss, yyssp);
   while (yyssp != yyss)
     {
       yydestruct ("Cleanup: popping",
 		  yystos[*yyssp], yyvsp);
-      YYPOPSTACK;
+      YYPOPSTACK (1);
     }
 #ifndef yyoverflow
   if (yyss != yyssa)
     YYSTACK_FREE (yyss);
 #endif
-  return yyresult;
+#if YYERROR_VERBOSE
+  if (yymsg != yymsgbuf)
+    YYSTACK_FREE (yymsg);
+#endif
+  /* Make sure YYID is used.  */
+  return YYID (yyresult);
 }
 
 
-#line 459 "../../../redhat/stock-elfutils/src/ldscript.y"
+#line 459 "ldscript.y"
 
 
 static void
Index: src/ldscript.h
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/src/ldscript.h,v
retrieving revision 1.5
diff -u -r1.5 ldscript.h
--- src/ldscript.h	22 Aug 2007 17:11:09 -0000	1.5
+++ src/ldscript.h	27 Aug 2007 19:21:47 -0000
@@ -1,7 +1,9 @@
-/* A Bison parser, made by GNU Bison 2.1.  */
+/* A Bison parser, made by GNU Bison 2.3.  */
 
-/* Skeleton parser for Yacc-like parsing with Bison,
-   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+/* Skeleton interface for Bison's Yacc-like parsers in C
+
+   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+   Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -18,10 +20,18 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor,
    Boston, MA 02110-1301, USA.  */
 
-/* As a special exception, when this file is copied by Bison into a
-   Bison output file, you may use that output file without restriction.
-   This special exception was added by the Free Software Foundation
-   in version 1.24 of Bison.  */
+/* As a special exception, you may create a larger work that contains
+   part or all of the Bison parser skeleton and distribute that work
+   under terms of your choice, so long as that work isn't itself a
+   parser generator using the skeleton or a modified version thereof
+   as a parser skeleton.  Alternatively, if you modify or redistribute
+   the parser skeleton itself, you may (at your option) remove this
+   special exception, which will cause the skeleton and the resulting
+   Bison output files to be licensed under the GNU General Public
+   License without this special exception.
+
+   This special exception was added by the Free Software Foundation in
+   version 2.2 of Bison.  */
 
 /* Tokens.  */
 #ifndef YYTOKENTYPE
@@ -90,9 +100,10 @@
 
 
 
-#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-#line 71 "../../../redhat/stock-elfutils/src/ldscript.y"
-typedef union YYSTYPE {
+#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
+typedef union YYSTYPE
+#line 71 "ldscript.y"
+{
   uintmax_t num;
   enum expression_tag op;
   char *str;
@@ -105,9 +116,10 @@
   struct filename_list *filename_list;
   struct version *version;
   struct id_list *id_list;
-} YYSTYPE;
-/* Line 1447 of yacc.c.  */
-#line 111 "ldscript.h"
+}
+/* Line 1489 of yacc.c.  */
+#line 122 "ldscript.h"
+	YYSTYPE;
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
 # define YYSTYPE_IS_TRIVIAL 1
@@ -115,5 +127,3 @@
 
 extern YYSTYPE ldlval;
 
-
-
Index: src/nm.c
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/src/nm.c,v
retrieving revision 1.4
diff -u -r1.4 nm.c
--- src/nm.c	22 Aug 2007 17:11:09 -0000	1.4
+++ src/nm.c	27 Aug 2007 19:21:47 -0000
@@ -134,7 +134,7 @@
 
 #define INTERNAL_ERROR(fname) \
   error (EXIT_FAILURE, 0, gettext ("%s: INTERNAL ERROR %d (%s-%s): %s"),      \
-	 fname, __LINE__, VERSION, __DATE__, elf_errmsg (-1))
+	 fname, __LINE__, PACKAGE_VERSION, __DATE__, elf_errmsg (-1))
 
 
 /* Internal representation of symbols.  */
@@ -217,10 +217,10 @@
   (void) setlocale (LC_ALL, "");
 
   /* Make sure the message catalog can be found.  */
-  (void) bindtextdomain (PACKAGE, LOCALEDIR);
+  (void) bindtextdomain (PACKAGE_TARNAME, LOCALEDIR);
 
   /* Initialize the message catalog.  */
-  (void) textdomain (PACKAGE);
+  (void) textdomain (PACKAGE_TARNAME);
 
   /* Parse and process arguments.  */
   (void) argp_parse (&argp, argc, argv, 0, &remaining, NULL);
@@ -249,7 +249,7 @@
 static void
 print_version (FILE *stream, struct argp_state *state __attribute__ ((unused)))
 {
-  fprintf (stream, "nm (%s) %s\n", PACKAGE_NAME, VERSION);
+  fprintf (stream, "nm (%s) %s\n", PACKAGE_NAME, PACKAGE_VERSION);
   fprintf (stream, gettext ("\
 Copyright (C) %s Red Hat, Inc.\n\
 This is free software; see the source for copying conditions.  There is NO\n\
Index: src/objdump.c
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/src/objdump.c,v
retrieving revision 1.4
diff -u -r1.4 objdump.c
--- src/objdump.c	22 Aug 2007 17:11:09 -0000	1.4
+++ src/objdump.c	27 Aug 2007 19:21:47 -0000
@@ -103,7 +103,7 @@
 
 #define INTERNAL_ERROR(fname) \
   error (EXIT_FAILURE, 0, gettext ("%s: INTERNAL ERROR %d (%s-%s): %s"),      \
-	 fname, __LINE__, VERSION, __DATE__, elf_errmsg (-1))
+	 fname, __LINE__, PACKAGE_VERSION, __DATE__, elf_errmsg (-1))
 
 
 /* List of sections which should be used.  */
@@ -143,10 +143,10 @@
   (void) setlocale (LC_ALL, "");
 
   /* Make sure the message catalog can be found.  */
-  (void) bindtextdomain (PACKAGE, LOCALEDIR);
+  (void) bindtextdomain (PACKAGE_TARNAME, LOCALEDIR);
 
   /* Initialize the message catalog.  */
-  (void) textdomain (PACKAGE);
+  (void) textdomain (PACKAGE_TARNAME);
 
   /* Parse and process arguments.  */
   int remaining;
@@ -177,7 +177,7 @@
 static void
 print_version (FILE *stream, struct argp_state *state __attribute__ ((unused)))
 {
-  fprintf (stream, "objdump (%s) %s\n", PACKAGE_NAME, VERSION);
+  fprintf (stream, "objdump (%s) %s\n", PACKAGE_NAME, PACKAGE_VERSION);
   fprintf (stream, gettext ("\
 Copyright (C) %s Red Hat, Inc.\n\
 This is free software; see the source for copying conditions.  There is NO\n\
Index: src/ranlib.c
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/src/ranlib.c,v
retrieving revision 1.5
diff -u -r1.5 ranlib.c
--- src/ranlib.c	22 Aug 2007 17:11:09 -0000	1.5
+++ src/ranlib.c	27 Aug 2007 19:21:47 -0000
@@ -98,10 +98,10 @@
   (void) setlocale (LC_ALL, "");
 
   /* Make sure the message catalog can be found.  */
-  (void) bindtextdomain (PACKAGE, LOCALEDIR);
+  (void) bindtextdomain (PACKAGE_TARNAME, LOCALEDIR);
 
   /* Initialize the message catalog.  */
-  (void) textdomain (PACKAGE);
+  (void) textdomain (PACKAGE_TARNAME);
 
   /* Parse and process arguments.  */
   int remaining;
@@ -132,7 +132,7 @@
 static void
 print_version (FILE *stream, struct argp_state *state __attribute__ ((unused)))
 {
-  fprintf (stream, "ranlib (%s) %s\n", PACKAGE_NAME, VERSION);
+  fprintf (stream, "ranlib (%s) %s\n", PACKAGE_NAME, PACKAGE_VERSION);
   fprintf (stream, gettext ("\
 Copyright (C) %s Red Hat, Inc.\n\
 This is free software; see the source for copying conditions.  There is NO\n\
Index: src/readelf.c
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/src/readelf.c,v
retrieving revision 1.7
diff -u -r1.7 readelf.c
--- src/readelf.c	22 Aug 2007 17:11:09 -0000	1.7
+++ src/readelf.c	27 Aug 2007 19:21:48 -0000
@@ -30,6 +30,7 @@
 
 #include <argp.h>
 #include <assert.h>
+#include <ctype.h>
 #include <dwarf.h>
 #include <errno.h>
 #include <error.h>
@@ -70,8 +71,10 @@
   { "histogram", 'I', NULL, 0,
     N_("Display histogram of bucket list lengths"), 0 },
   { "program-headers", 'l', NULL, 0, N_("Display the program headers"), 0 },
+  { "segments", 'l', NULL, OPTION_ALIAS | OPTION_HIDDEN, NULL, 0 },
   { "relocs", 'r', NULL, 0, N_("Display relocations"), 0 },
   { "section-headers", 'S', NULL, 0, N_("Display the sections' header"), 0 },
+  { "sections", 'S', NULL, OPTION_ALIAS | OPTION_HIDDEN, NULL, 0 },
   { "symbols", 's', NULL, 0, N_("Display the symbol table"), 0 },
   { "version-info", 'V', NULL, 0, N_("Display versioning information"), 0 },
   { "debug-dump", 'w', "SECTION", OPTION_ARG_OPTIONAL,
@@ -81,6 +84,10 @@
   { "notes", 'n', NULL, 0, N_("Display the core notes"), 0 },
   { "arch-specific", 'A', NULL, 0,
     N_("Display architecture specific information (if any)"), 0 },
+  { "hex-dump", 'x', "SECTION", 0,
+    N_("Dump the uninterpreted contents of SECTION, by number or name"), 0 },
+  { "strings", 'p', NULL, 0,
+    N_("Print contents of sections marked as containing only strings"), 0 },
 
   { NULL, 0, NULL, 0, N_("Output control:"), 0 },
 
@@ -139,6 +146,9 @@
 /* True if note section content should be printed.  */
 static bool print_notes;
 
+/* True if SHF_STRINGS section content should be printed.  */
+static bool print_string_sections;
+
 /* Select printing of debugging sections.  */
 static enum section_e
 {
@@ -158,6 +168,16 @@
 		 | section_ranges)
 } print_debug_sections;
 
+/* Select hex dumping of sections.  */
+static struct section_argument *dump_data_sections;
+static struct section_argument **dump_data_sections_tail = &dump_data_sections;
+
+struct section_argument
+{
+  struct section_argument *next;
+  const char *arg;
+};
+
 /* Number of sections in the file.  */
 static size_t shnum;
 
@@ -186,6 +206,8 @@
 static void handle_hash (Ebl *ebl);
 static void handle_notes (Ebl *ebl, GElf_Ehdr *ehdr);
 static void print_liblist (Ebl *ebl);
+static void dump_data (Ebl *ebl);
+static void print_strings (Ebl *ebl);
 
 
 int
@@ -195,7 +217,7 @@
   setlocale (LC_ALL, "");
 
   /* Initialize the message catalog.  */
-  textdomain (PACKAGE);
+  textdomain (PACKAGE_TARNAME);
 
   /* Parse and process arguments.  */
   int remaining;
@@ -303,6 +325,10 @@
       print_symbol_table = true;
       any_control_option = true;
       break;
+    case 'p':
+      print_string_sections = true;
+      any_control_option = true;
+      break;
     case 'V':
       print_version_info = true;
       any_control_option = true;
@@ -340,6 +366,16 @@
 	}
       any_control_option = true;
       break;
+    case 'x':
+      {
+	struct section_argument *a = xmalloc (sizeof *a);
+	a->arg = arg;
+	a->next = NULL;
+	*dump_data_sections_tail = a;
+	dump_data_sections_tail = &a->next;
+      }
+      any_control_option = true;
+      break;
     case ARGP_KEY_NO_ARGS:
       fputs (gettext ("Missing file name.\n"), stderr);
       goto do_argp_help;
@@ -364,7 +400,7 @@
 static void
 print_version (FILE *stream, struct argp_state *state __attribute__ ((unused)))
 {
-  fprintf (stream, "readelf (%s) %s\n", PACKAGE_NAME, VERSION);
+  fprintf (stream, "readelf (%s) %s\n", PACKAGE_NAME, PACKAGE_VERSION);
   fprintf (stream, gettext ("\
 Copyright (C) %s Red Hat, Inc.\n\
 This is free software; see the source for copying conditions.  There is NO\n\
@@ -503,10 +539,14 @@
     print_symtab (ebl, SHT_SYMTAB);
   if (print_arch)
     print_liblist (ebl);
+  if (dump_data_sections != NULL)
+    dump_data (ebl);
   if (print_debug_sections != 0)
     print_debug (ebl, ehdr);
   if (print_notes)
     handle_notes (ebl, ehdr);
+  if (print_string_sections)
+    print_strings (ebl);
 
   ebl_closebackend (ebl);
 }
@@ -5048,3 +5088,167 @@
       gelf_freechunk (ebl->elf, notemem);
     }
 }
+
+
+static void
+hex_dump (const uint8_t *data, size_t len)
+{
+  size_t pos = 0;
+  while (pos < len)
+    {
+      printf ("  0x%08Zu ", pos);
+
+      const size_t chunk = MIN (len - pos, 16);
+
+      for (size_t i = 0; i < chunk; ++i)
+	if (i % 4 == 3)
+	  printf ("%02x ", data[pos + i]);
+	else
+	  printf ("%02x", data[pos + i]);
+
+      if (chunk < 16)
+	printf ("%*s", (int) ((chunk - 16) * 2 + (chunk - 16) / 4), "");
+
+      for (size_t i = 0; i < chunk; ++i)
+	{
+	  unsigned char b = data[pos + i];
+	  printf ("%c", isprint (b) ? b : '.');
+	}
+
+      putchar ('\n');
+      pos += chunk;
+    }
+}
+
+static void
+dump_data (Ebl *ebl)
+{
+  /* Get the section header string table index.  */
+  size_t shstrndx;
+  if (elf_getshstrndx (ebl->elf, &shstrndx) < 0)
+    error (EXIT_FAILURE, 0,
+	   gettext ("cannot get section header string table index"));
+
+  for (struct section_argument *a = dump_data_sections; a != NULL; a = a->next)
+    {
+      Elf_Scn *scn;
+      GElf_Shdr shdr_mem;
+      const char *name;
+
+      char *endp = NULL;
+      unsigned long int shndx = strtoul (a->arg, &endp, 0);
+      if (endp != a->arg && *endp == '\0')
+	{
+	  scn = elf_getscn (ebl->elf, shndx);
+	  if (scn == NULL)
+	    {
+	      error (0, 0, gettext ("\nsection [%lu] does not exist"), shndx);
+	      continue;
+	    }
+
+	  if (gelf_getshdr (scn, &shdr_mem) == NULL)
+	    error (EXIT_FAILURE, 0, gettext ("cannot get section header: %s"),
+		   elf_errmsg (-1));
+	  name = elf_strptr (ebl->elf, shstrndx, shdr_mem.sh_name);
+	}
+      else
+	{
+	  /* Need to look up the section by name.  */
+	  scn = NULL;
+	  while ((scn = elf_nextscn (ebl->elf, scn)) != NULL)
+	    {
+	      if (gelf_getshdr (scn, &shdr_mem) == NULL)
+		continue;
+	      name = elf_strptr (ebl->elf, shstrndx, shdr_mem.sh_name);
+	      if (name == NULL)
+		continue;
+	      if (!strcmp (name, a->arg))
+		break;
+	    }
+
+	  if (scn == NULL)
+	    {
+	      error (0, 0, gettext ("\nsection '%s' does not exist"), a->arg);
+	      continue;
+	    }
+	}
+
+      if (shdr_mem.sh_size == 0 || shdr_mem.sh_type == SHT_NOBITS)
+	printf (gettext ("\nSection [%Zu] '%s' has no data to dump.\n"),
+		elf_ndxscn (scn), name);
+      else
+	{
+	  Elf_Data *data = elf_rawdata (scn, NULL);
+	  if (data == NULL)
+	    error (0, 0, gettext ("cannot get data for section [%Zu] '%s': %s"),
+		   elf_ndxscn (scn), name, elf_errmsg (-1));
+	  else
+	    {
+	      printf (gettext ("\nHex dump of section [%Zu] '%s', %" PRIu64
+			       " bytes at offset %#0" PRIx64 ":\n"),
+		      elf_ndxscn (scn), name,
+		      shdr_mem.sh_size, shdr_mem.sh_offset);
+	      hex_dump (data->d_buf, data->d_size);
+	    }
+	}
+    }
+}
+
+static void
+print_strings (Ebl *ebl)
+{
+  /* Get the section header string table index.  */
+  size_t shstrndx;
+  if (elf_getshstrndx (ebl->elf, &shstrndx) < 0)
+    error (EXIT_FAILURE, 0,
+	   gettext ("cannot get section header string table index"));
+
+  Elf_Scn *scn;
+  GElf_Shdr shdr_mem;
+  const char *name;
+  scn = NULL;
+  while ((scn = elf_nextscn (ebl->elf, scn)) != NULL)
+    {
+      if (gelf_getshdr (scn, &shdr_mem) == NULL)
+	continue;
+
+      if (shdr_mem.sh_type != SHT_PROGBITS
+	  || !(shdr_mem.sh_flags & SHF_STRINGS))
+	continue;
+
+      name = elf_strptr (ebl->elf, shstrndx, shdr_mem.sh_name);
+      if (name == NULL)
+	continue;
+
+      if (shdr_mem.sh_size == 0)
+	printf (gettext ("\nSection [%Zu] '%s' is empty.\n"),
+		elf_ndxscn (scn), name);
+
+      Elf_Data *data = elf_rawdata (scn, NULL);
+      if (data == NULL)
+	error (0, 0, gettext ("cannot get data for section [%Zu] '%s': %s"),
+	       elf_ndxscn (scn), name, elf_errmsg (-1));
+      else
+	{
+	  printf (gettext ("\nString section [%Zu] '%s' contains %" PRIu64
+			   " bytes at offset %#0" PRIx64 ":\n"),
+		  elf_ndxscn (scn), name,
+		  shdr_mem.sh_size, shdr_mem.sh_offset);
+
+	  const char *start = data->d_buf;
+	  const char *const limit = start + data->d_size;
+	  do
+	    {
+	      const char *end = memchr (start, '\0', limit - start);
+	      const size_t pos = start - (const char *) data->d_buf;
+	      if (unlikely (end == NULL))
+		{
+		  printf ("  [%6Zx]- %.*s\n", pos, (int) (end - start), start);
+		  break;
+		}
+	      printf ("  [%6Zx]  %s\n", pos, start);
+	      start = end + 1;
+	    } while (start < limit);
+	}
+    }
+}
Index: src/size.c
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/src/size.c,v
retrieving revision 1.4
diff -u -r1.4 size.c
--- src/size.c	22 Aug 2007 17:11:09 -0000	1.4
+++ src/size.c	27 Aug 2007 19:21:48 -0000
@@ -115,7 +115,7 @@
 
 #define INTERNAL_ERROR(fname) \
   error (EXIT_FAILURE, 0, gettext ("%s: INTERNAL ERROR %d (%s-%s): %s"),      \
-	 fname, __LINE__, VERSION, __DATE__, elf_errmsg (-1))
+	 fname, __LINE__, PACKAGE_VERSION, __DATE__, elf_errmsg (-1))
 
 
 /* User-selectable options.  */
@@ -180,10 +180,10 @@
   setlocale (LC_ALL, "");
 
   /* Make sure the message catalog can be found.  */
-  bindtextdomain (PACKAGE, LOCALEDIR);
+  bindtextdomain (PACKAGE_TARNAME, LOCALEDIR);
 
   /* Initialize the message catalog.  */
-  textdomain (PACKAGE);
+  textdomain (PACKAGE_TARNAME);
 
   /* Parse and process arguments.  */
   argp_parse (&argp, argc, argv, 0, &remaining, NULL);
@@ -215,7 +215,7 @@
 static void
 print_version (FILE *stream, struct argp_state *state __attribute__ ((unused)))
 {
-  fprintf (stream, "size (%s) %s\n", PACKAGE_NAME, VERSION);
+  fprintf (stream, "size (%s) %s\n", PACKAGE_NAME, PACKAGE_VERSION);
   fprintf (stream, gettext ("\
 Copyright (C) %s Red Hat, Inc.\n\
 This is free software; see the source for copying conditions.  There is NO\n\
Index: src/strings.c
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/src/strings.c,v
retrieving revision 1.4
diff -u -r1.4 strings.c
--- src/strings.c	22 Aug 2007 17:11:09 -0000	1.4
+++ src/strings.c	27 Aug 2007 19:21:48 -0000
@@ -149,10 +149,10 @@
   (void) setlocale (LC_ALL, "");
 
   /* Make sure the message catalog can be found.  */
-  (void) bindtextdomain (PACKAGE, LOCALEDIR);
+  (void) bindtextdomain (PACKAGE_TARNAME, LOCALEDIR);
 
   /* Initialize the message catalog.  */
-  (void) textdomain (PACKAGE);
+  (void) textdomain (PACKAGE_TARNAME);
 
   /* Parse and process arguments.  */
   int remaining;
@@ -223,7 +223,7 @@
 static void
 print_version (FILE *stream, struct argp_state *state __attribute__ ((unused)))
 {
-  fprintf (stream, "strings (%s) %s\n", PACKAGE_NAME, VERSION);
+  fprintf (stream, "strings (%s) %s\n", PACKAGE_NAME, PACKAGE_VERSION);
   fprintf (stream, gettext ("\
 Copyright (C) %s Red Hat, Inc.\n\
 This is free software; see the source for copying conditions.  There is NO\n\
Index: src/strip.c
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/src/strip.c,v
retrieving revision 1.6
diff -u -r1.6 strip.c
--- src/strip.c	22 Aug 2007 17:11:09 -0000	1.6
+++ src/strip.c	27 Aug 2007 19:21:49 -0000
@@ -70,7 +70,7 @@
 static const struct argp_option options[] =
 {
   { NULL, 0, NULL, 0, N_("Output selection:"), 0 },
-  { NULL, 'o', "FILE", 0, N_("Place stripped output into FILE"), 0 },
+  { "output", 'o', "FILE", 0, N_("Place stripped output into FILE"), 0 },
   { NULL, 'f', "FILE", 0, N_("Extract the removed sections into FILE"), 0 },
   { NULL, 'F', "FILE", 0, N_("Embed name FILE instead of -f argument"), 0 },
 
@@ -118,7 +118,7 @@
 
 #define INTERNAL_ERROR(fname) \
   error (EXIT_FAILURE, 0, gettext ("%s: INTERNAL ERROR %d (%s-%s): %s"),      \
-	 fname, __LINE__, VERSION, __DATE__, elf_errmsg (-1))
+	 fname, __LINE__, PACKAGE_VERSION, __DATE__, elf_errmsg (-1))
 
 
 /* Name of the output file.  */
@@ -161,10 +161,10 @@
   setlocale (LC_ALL, "");
 
   /* Make sure the message catalog can be found.  */
-  bindtextdomain (PACKAGE, LOCALEDIR);
+  bindtextdomain (PACKAGE_TARNAME, LOCALEDIR);
 
   /* Initialize the message catalog.  */
-  textdomain (PACKAGE);
+  textdomain (PACKAGE_TARNAME);
 
   /* Parse and process arguments.  */
   if (argp_parse (&argp, argc, argv, 0, &remaining, NULL) != 0)
@@ -199,7 +199,7 @@
 static void
 print_version (FILE *stream, struct argp_state *state __attribute__ ((unused)))
 {
-  fprintf (stream, "strip (%s) %s\n", PACKAGE_NAME, VERSION);
+  fprintf (stream, "strip (%s) %s\n", PACKAGE_NAME, PACKAGE_VERSION);
   fprintf (stream, gettext ("\
 Copyright (C) %s Red Hat, Inc.\n\
 This is free software; see the source for copying conditions.  There is NO\n\
@@ -892,8 +892,9 @@
 		   elf_errmsg (-1));
 
 	  bool discard_section = (shdr_info[cnt].idx > 0
-				  && cnt != ehdr->e_shstrndx
-				  && shdr_info[cnt].debug_data == NULL);
+				  && shdr_info[cnt].debug_data == NULL
+				  && shdr_info[cnt].shdr.sh_type != SHT_NOTE
+				  && cnt != ehdr->e_shstrndx);
 
 	  /* Set the section header in the new file.  */
 	  GElf_Shdr debugshdr = shdr_info[cnt].shdr;
@@ -1316,6 +1317,24 @@
 	 symbol table.  */
       for (cnt = 1; cnt <= shdridx; ++cnt)
 	{
+	  /* Update section headers when the data size has changed.
+	     We also update the SHT_NOBITS section in the debug
+	     file so that the section headers match in sh_size.  */
+	  inline void update_section_size (const Elf_Data *newdata)
+	    {
+	      GElf_Shdr shdr_mem;
+	      GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem);
+	      shdr->sh_size = newdata->d_size;
+	      (void) gelf_update_shdr (scn, shdr);
+	      if (debugelf != NULL)
+		{
+		  /* libelf will use d_size to set sh_size.  */
+		  Elf_Data *debugdata = elf_getdata (elf_getscn (debugelf,
+								 cnt), NULL);
+		  debugdata->d_size = newdata->d_size;
+		}
+	    }
+
 	  if (shdr_info[cnt].idx == 0 && debug_fname == NULL)
 	    /* Ignore sections which are discarded.  When we are saving a
 	       relocation section in a separate debug file, we must fix up
@@ -1433,12 +1452,9 @@
 		  Elf32_Word *chain = bucket + nbucket;
 
 		  /* New size of the section.  */
-		  GElf_Shdr shdr_mem;
-		  GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem);
-		  shdr->sh_size = hashd->d_size
-		    = (2 + symd->d_size / elsize + nbucket)
-		      * sizeof (Elf32_Word);
-		  (void) gelf_update_shdr (scn, shdr);
+		  hashd->d_size = ((2 + symd->d_size / elsize + nbucket)
+				   * sizeof (Elf32_Word));
+		  update_section_size (hashd);
 
 		  /* Clear the arrays.  */
 		  memset (bucket, '\0',
@@ -1490,12 +1506,9 @@
 		  Elf64_Xword *chain = bucket + nbucket;
 
 		  /* New size of the section.  */
-		  GElf_Shdr shdr_mem;
-		  GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem);
-		  shdr->sh_size = hashd->d_size
-		    = (2 + symd->d_size / elsize + nbucket)
-		      * sizeof (Elf64_Xword);
-		  (void) gelf_update_shdr (scn, shdr);
+		  hashd->d_size = ((2 + symd->d_size / elsize + nbucket)
+				   * sizeof (Elf64_Xword));
+		  update_section_size (hashd);
 
 		  /* Clear the arrays.  */
 		  memset (bucket, '\0',
@@ -1578,14 +1591,12 @@
 		  verstab[newsymidx[inner]] = verstab[inner];
 
 	      /* New size of the section.  */
-	      GElf_Shdr shdr_mem;
-	      GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem);
-	      shdr->sh_size = verd->d_size
-		= gelf_fsize (newelf, verd->d_type,
-			      symd->d_size / gelf_fsize (elf, symd->d_type, 1,
-							 ehdr->e_version),
-			      ehdr->e_version);
-	      (void) gelf_update_shdr (scn, shdr);
+	      verd->d_size = gelf_fsize (newelf, verd->d_type,
+					 symd->d_size
+					 / gelf_fsize (elf, symd->d_type, 1,
+						       ehdr->e_version),
+					 ehdr->e_version);
+	      update_section_size (verd);
 	    }
 	  else if (shdr_info[cnt].shdr.sh_type == SHT_GROUP)
 	    {
Index: tests/ChangeLog
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/tests/ChangeLog,v
retrieving revision 1.19
diff -u -r1.19 ChangeLog
--- tests/ChangeLog	22 Aug 2007 17:11:09 -0000	1.19
+++ tests/ChangeLog	27 Aug 2007 19:21:49 -0000
@@ -1,3 +1,4 @@
+<<<<<<< ChangeLog
 2007-05-01  Andrew Cagney  <cagney@redhat.com>
 
 	* Makefile.am (dwfl_bug_fd_leak_LDADD): Delete redundant
@@ -44,6 +45,84 @@
 
 	* line2addr.c (main): Avoid using sscanf() to prevent a warning.
 
+=======
+2007-08-12  Roland McGrath  <roland@redhat.com>
+
+	* run-strip-test7.sh: New file.
+	* testfile39.bz2: New data file.
+	* testfile40.bz2: New data file.
+	* testfile40.debug.bz2: New data file.
+	* Makefile.am (TESTS, EXTRA_DIST): Add them.
+
+2007-08-09  Roland McGrath  <roland@redhat.com>
+
+	* dwfl-bug-report.c: Fix header inclusion.
+
+2007-08-08  Roland McGrath  <roland@redhat.com>
+
+	* run-addrname-test.sh: Add a new case using addr2line -S.
+	* testfile38.bz2: New data file.
+	* Makefile.am (EXTRA_DIST): Add it.
+
+2007-07-16  Roland McGrath  <roland@redhat.com>
+
+	* dwfl-bug-report.c: New file.
+	* Makefile.am (noinst_PROGRAMS, TESTS): Add it.
+	(dwfl_bug_report_LDADD): New variable.
+
+2007-06-06  Roland McGrath  <roland@redhat.com>
+
+	* run-unstrip-test.sh: Declare testfile.unstrip for removal.
+
+2007-06-05  Ulrich Drepper  <drepper@redhat.com>
+
+	* Makefile.am (EXTRA_DIST): Add missing line continuation and
+	testfile37.bz and testfile37.debug.bz2.
+
+2007-05-23  Roland McGrath  <roland@redhat.com>
+
+	* run-allregs.sh: Update expected Alpha results.
+
+2007-05-18  Roland McGrath  <roland@redhat.com>
+
+	* run-strip-test4.sh (stripped, debugfile): Use new reference files.
+	* testfile37.bz2: New data file.
+	* testfile37.debug.bz2: New data file.
+	* run-unstrip-test2.sh: New file.
+	* Makefile.am (TESTS, EXTRA_DIST): Add them.
+
+2007-05-10  Roland McGrath  <roland@redhat.com>
+
+	* run-dwfl-bug-offline-rel.sh: New file.
+	* testfile36.bz2: New data file.
+	* testfile36.debug.bz2: New data file.
+	* Makefile.am (TESTS, EXTRA_DIST): Add them.
+
+2007-04-28  Roland McGrath  <roland@redhat.com>
+
+	* run-strip-test6.sh (stripped, debugfile): Use new reference files.
+	* testfile35.bz2: New data file.
+	* testfile35.debug.bz2: New data file.
+	* run-unstrip-test.sh: New file.
+	* Makefile.am (TESTS, EXTRA_DIST): Add them.
+
+	* run-strip-test.sh: Do all elflint and cmp runs even when some fail.
+
+2007-04-26  Roland McGrath  <roland@redhat.com>
+
+	* run-elflint-self.sh: Run all tests even if one fails.
+
+	* run-allregs.sh: Add expected output for alpha.
+
+2007-04-24  Roland McGrath  <roland@redhat.com>
+
+	* run-strip-test.sh: When we saved the debug info, test unstrip too.
+
+2007-04-22  Roland McGrath  <roland@redhat.com>
+
+	* run-allregs.sh: Update expected register info.
+
+>>>>>>> 1.1.1.5
 2007-04-16  Roland McGrath  <roland@redhat.com>
 
 	* dwfl-addr-sect.c: New file.
@@ -573,7 +652,7 @@
 
 	* show-abbrev.c (main): Adjust for dwarf_getabbrev interface change.
 
-2005-04-04  Roland McGrath  <roland@frob.com>
+2005-04-04  Roland McGrath  <roland@redhat.com>
 
 	* line2addr.c (main): Initialize LINES and NLINES before calling
 	dwarf_getsrc_file, and free LINES afterwards.
Index: tests/Makefile.am
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/tests/Makefile.am,v
retrieving revision 1.15
diff -u -r1.15 Makefile.am
--- tests/Makefile.am	22 Aug 2007 17:11:09 -0000	1.15
+++ tests/Makefile.am	27 Aug 2007 19:21:49 -0000
@@ -59,7 +59,7 @@
 		  show-abbrev hash newscn ecp dwflmodtest \
 		  find-prologues funcretval allregs rdwrmmap \
 		  dwfl-bug-addr-overflow arls dwfl-bug-fd-leak \
-		  dwfl-addr-sect
+		  dwfl-addr-sect dwfl-bug-report
 # get-ciefde
 asm_TESTS = asm-tst1 asm-tst2 asm-tst3 asm-tst4 asm-tst5 \
 	    asm-tst6 asm-tst7 asm-tst8 asm-tst9
@@ -71,13 +71,22 @@
 	run-show-abbrev.sh run-line2addr.sh hash \
 	newscn run-strip-test.sh run-strip-test2.sh \
 	run-strip-test3.sh run-strip-test4.sh run-strip-test5.sh \
+<<<<<<< Makefile.am
 	run-strip-test6.sh run-ecp-test.sh run-ecp-test2.sh \
 	run-elflint-test.sh $(run-elflint-self.sh) run-ranlib-test.sh \
+=======
+	run-strip-test6.sh run-strip-test7.sh \
+	run-unstrip-test.sh run-unstrip-test2.sh \
+	run-ecp-test.sh run-ecp-test2.sh \
+	run-elflint-test.sh run-elflint-self.sh run-ranlib-test.sh \
+>>>>>>> 1.1.1.5
 	run-ranlib-test2.sh run-ranlib-test3.sh run-ranlib-test4.sh \
 	run-addrscopes.sh run-strings-test.sh run-funcscopes.sh \
 	run-find-prologues.sh run-allregs.sh run-readelf-test1.sh \
 	run-native-test.sh run-bug1-test.sh \
-	dwfl-bug-addr-overflow run-addrname-test.sh dwfl-bug-fd-leak
+	dwfl-bug-addr-overflow run-addrname-test.sh \
+	dwfl-bug-fd-leak dwfl-bug-report \
+	run-dwfl-bug-offline-rel.sh
 # run-show-ciefde.sh
 
 if !STANDALONE
@@ -102,11 +111,12 @@
 	     testfile13.bz2 run-strip-test3.sh run-allfcts.sh \
 	     run-line2addr.sh run-elflint-test.sh testfile14.bz2 \
 	     run-strip-test4.sh run-strip-test5.sh run-strip-test6.sh \
+	     run-strip-test7.sh run-unstrip-test.sh run-unstrip-test2.sh \
 	     run-elflint-self.sh run-ranlib-test.sh run-ranlib-test2.sh \
 	     run-ranlib-test3.sh run-ranlib-test4.sh \
 	     run-addrscopes.sh run-strings-test.sh run-funcscopes.sh \
 	     run-find-prologues.sh run-allregs.sh run-native-test.sh \
-	     run-addrname-test.sh \
+	     run-addrname-test.sh run-dwfl-bug-offline-rel.sh \
 	     testfile15.bz2 testfile15.debug.bz2 \
 	     testfile16.bz2 testfile16.debug.bz2 \
 	     testfile17.bz2 testfile17.debug.bz2 \
@@ -119,7 +129,10 @@
 	     run-bug1-test.sh testfile28.bz2 testfile28.rdwr.bz2 \
 	     testfile29.bz2 testfile29.rdwr.bz2 \
 	     testfile30.bz2 testfile31.bz2 testfile32.bz2 testfile33.bz2 \
-	     testfile34.bz2
+	     testfile34.bz2 testfile35.bz2 testfile35.debug.bz2 \
+	     testfile36.bz2 testfile36.debug.bz2 \
+	     testfile37.bz2 testfile37.debug.bz2 \
+	     testfile38.bz2 testfile39.bz2 testfile40.bz2 testfile40.debug.bz2
 
 installed_TESTS_ENVIRONMENT = libdir=$(DESTDIR)$(libdir) \
 			      bindir=$(DESTDIR)$(bindir) \
@@ -205,6 +218,7 @@
 dwfl_bug_addr_overflow_LDADD = $(libdw) $(libebl) $(libelf) $(libmudflap) -ldl
 arls_LDADD = $(libelf) $(libmudflap)
 dwfl_bug_fd_leak_LDADD = $(libdw) $(libebl) $(libelf) $(libmudflap) -ldl
+dwfl_bug_report_LDADD = $(libdw) $(libebl) $(libelf) $(libmudflap) -ldl
 dwfl_addr_sect_LDADD = $(libdw) $(libebl) $(libelf) $(libmudflap) -ldl
 
 CLEANFILES = xxx *.gcno *.gcda *gconv
Index: tests/run-addrname-test.sh
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/tests/run-addrname-test.sh,v
retrieving revision 1.3
diff -u -r1.3 run-addrname-test.sh
--- tests/run-addrname-test.sh	22 Aug 2007 17:11:09 -0000	1.3
+++ tests/run-addrname-test.sh	27 Aug 2007 19:21:49 -0000
@@ -25,7 +25,7 @@
 
 . $srcdir/test-subr.sh
 
-testfiles testfile34
+testfiles testfile34 testfile38
 
 testrun_compare ../src/addr2line -f -e testfile34 \
 				 0x08048074 0x08048075 0x08048076 \
@@ -44,4 +44,15 @@
 ??:0
 EOF
 
+testrun_compare ../src/addr2line -S -e testfile38 0x02 0x10a 0x211 0x31a <<\EOF
+t1_global_outer+0x2
+??:0
+t2_global_symbol+0x2
+??:0
+t3_global_after_0+0x1
+??:0
+(.text)+0x31a
+??:0
+EOF
+
 exit 0
Index: tests/run-allregs.sh
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/tests/run-allregs.sh,v
retrieving revision 1.5
diff -u -r1.5 run-allregs.sh
--- tests/run-allregs.sh	22 Aug 2007 17:11:09 -0000	1.5
+++ tests/run-allregs.sh	27 Aug 2007 19:21:49 -0000
@@ -48,8 +48,8 @@
 	  9: %eflags (eflags), unsigned 32 bits
 	 10: %trapno (trapno), unsigned 32 bits
 FPU-control registers:
-	 37: %fctrl (fctrl), unsigned 32 bits
-	 38: %fstat (fstat), unsigned 32 bits
+	 37: %fctrl (fctrl), unsigned 16 bits
+	 38: %fstat (fstat), unsigned 16 bits
 	 39: %mxcsr (mxcsr), unsigned 32 bits
 MMX registers:
 	 29: %mm0 (mm0), unsigned 64 bits
@@ -137,8 +137,8 @@
 	 62: %tr (tr), unsigned 64 bits
 	 63: %ldtr (ldtr), unsigned 64 bits
 	 64: %mxcsr (mxcsr), unsigned 64 bits
-	 65: %fcw (fcw), unsigned 64 bits
-	 66: %fsw (fsw), unsigned 64 bits
+	 65: %fcw (fcw), unsigned 16 bits
+	 66: %fsw (fsw), unsigned 16 bits
 segment registers:
 	 50: %es (es), unsigned 16 bits
 	 51: %cs (cs), unsigned 16 bits
@@ -196,38 +196,38 @@
 	 64: cr (cr), unsigned 32 bits
 	 66: msr (msr), unsigned 32 bits
 FPU registers:
-	 32: f0 (f0), float 32 bits
-	 33: f1 (f1), float 32 bits
-	 34: f2 (f2), float 32 bits
-	 35: f3 (f3), float 32 bits
-	 36: f4 (f4), float 32 bits
-	 37: f5 (f5), float 32 bits
-	 38: f6 (f6), float 32 bits
-	 39: f7 (f7), float 32 bits
-	 40: f8 (f8), float 32 bits
-	 41: f9 (f9), float 32 bits
-	 42: f10 (f10), float 32 bits
-	 43: f11 (f11), float 32 bits
-	 44: f12 (f12), float 32 bits
-	 45: f13 (f13), float 32 bits
-	 46: f14 (f14), float 32 bits
-	 47: f15 (f15), float 32 bits
-	 48: f16 (f16), float 32 bits
-	 49: f17 (f17), float 32 bits
-	 50: f18 (f18), float 32 bits
-	 51: f19 (f19), float 32 bits
-	 52: f20 (f20), float 32 bits
-	 53: f21 (f21), float 32 bits
-	 54: f22 (f22), float 32 bits
-	 55: f23 (f23), float 32 bits
-	 56: f24 (f24), float 32 bits
-	 57: f25 (f25), float 32 bits
-	 58: f26 (f26), float 32 bits
-	 59: f27 (f27), float 32 bits
-	 60: f28 (f28), float 32 bits
-	 61: f29 (f29), float 32 bits
-	 62: f30 (f30), float 32 bits
-	 63: f31 (f31), float 32 bits
+	 32: f0 (f0), float 64 bits
+	 33: f1 (f1), float 64 bits
+	 34: f2 (f2), float 64 bits
+	 35: f3 (f3), float 64 bits
+	 36: f4 (f4), float 64 bits
+	 37: f5 (f5), float 64 bits
+	 38: f6 (f6), float 64 bits
+	 39: f7 (f7), float 64 bits
+	 40: f8 (f8), float 64 bits
+	 41: f9 (f9), float 64 bits
+	 42: f10 (f10), float 64 bits
+	 43: f11 (f11), float 64 bits
+	 44: f12 (f12), float 64 bits
+	 45: f13 (f13), float 64 bits
+	 46: f14 (f14), float 64 bits
+	 47: f15 (f15), float 64 bits
+	 48: f16 (f16), float 64 bits
+	 49: f17 (f17), float 64 bits
+	 50: f18 (f18), float 64 bits
+	 51: f19 (f19), float 64 bits
+	 52: f20 (f20), float 64 bits
+	 53: f21 (f21), float 64 bits
+	 54: f22 (f22), float 64 bits
+	 55: f23 (f23), float 64 bits
+	 56: f24 (f24), float 64 bits
+	 57: f25 (f25), float 64 bits
+	 58: f26 (f26), float 64 bits
+	 59: f27 (f27), float 64 bits
+	 60: f28 (f28), float 64 bits
+	 61: f29 (f29), float 64 bits
+	 62: f30 (f30), float 64 bits
+	 63: f31 (f31), float 64 bits
 	 65: fpscr (fpscr), unsigned 32 bits
 privileged registers:
 	 70: sr0 (sr0), unsigned 32 bits
@@ -246,16 +246,16 @@
 	 83: sr13 (sr13), unsigned 32 bits
 	 84: sr14 (sr14), unsigned 32 bits
 	 85: sr15 (sr15), unsigned 32 bits
-	100: spr0 (spr0), unsigned 32 bits
-	101: spr1 (spr1), unsigned 32 bits
+	100: mq (mq), unsigned 32 bits
+	101: xer (xer), unsigned 32 bits
 	102: spr2 (spr2), unsigned 32 bits
 	103: spr3 (spr3), unsigned 32 bits
 	104: spr4 (spr4), unsigned 32 bits
 	105: spr5 (spr5), unsigned 32 bits
 	106: spr6 (spr6), unsigned 32 bits
 	107: spr7 (spr7), unsigned 32 bits
-	108: spr8 (spr8), unsigned 32 bits
-	109: spr9 (spr9), unsigned 32 bits
+	108: lr (lr), unsigned 32 bits
+	109: ctr (ctr), unsigned 32 bits
 	110: spr10 (spr10), unsigned 32 bits
 	111: spr11 (spr11), unsigned 32 bits
 	112: spr12 (spr12), unsigned 32 bits
@@ -264,11 +264,11 @@
 	115: spr15 (spr15), unsigned 32 bits
 	116: spr16 (spr16), unsigned 32 bits
 	117: spr17 (spr17), unsigned 32 bits
-	118: spr18 (spr18), unsigned 32 bits
-	119: spr19 (spr19), unsigned 32 bits
+	118: dsisr (dsisr), unsigned 32 bits
+	119: dar (dar), unsigned 32 bits
 	120: spr20 (spr20), unsigned 32 bits
 	121: spr21 (spr21), unsigned 32 bits
-	122: spr22 (spr22), unsigned 32 bits
+	122: dec (dec), unsigned 32 bits
 	123: spr23 (spr23), unsigned 32 bits
 	124: spr24 (spr24), unsigned 32 bits
 	125: spr25 (spr25), unsigned 32 bits
@@ -502,7 +502,7 @@
 	353: spr253 (spr253), unsigned 32 bits
 	354: spr254 (spr254), unsigned 32 bits
 	355: spr255 (spr255), unsigned 32 bits
-	356: spr256 (spr256), unsigned 32 bits
+	356: vrsave (vrsave), unsigned 32 bits
 	357: spr257 (spr257), unsigned 32 bits
 	358: spr258 (spr258), unsigned 32 bits
 	359: spr259 (spr259), unsigned 32 bits
@@ -1269,15 +1269,15 @@
 	 84: sr14 (sr14), unsigned 64 bits
 	 85: sr15 (sr15), unsigned 64 bits
 	100: spr0 (spr0), unsigned 64 bits
-	101: spr1 (spr1), unsigned 64 bits
+	101: xer (xer), unsigned 64 bits
 	102: spr2 (spr2), unsigned 64 bits
 	103: spr3 (spr3), unsigned 64 bits
 	104: spr4 (spr4), unsigned 64 bits
 	105: spr5 (spr5), unsigned 64 bits
 	106: spr6 (spr6), unsigned 64 bits
 	107: spr7 (spr7), unsigned 64 bits
-	108: spr8 (spr8), unsigned 64 bits
-	109: spr9 (spr9), unsigned 64 bits
+	108: lr (lr), unsigned 64 bits
+	109: ctr (ctr), unsigned 64 bits
 	110: spr10 (spr10), unsigned 64 bits
 	111: spr11 (spr11), unsigned 64 bits
 	112: spr12 (spr12), unsigned 64 bits
@@ -1286,11 +1286,11 @@
 	115: spr15 (spr15), unsigned 64 bits
 	116: spr16 (spr16), unsigned 64 bits
 	117: spr17 (spr17), unsigned 64 bits
-	118: spr18 (spr18), unsigned 64 bits
-	119: spr19 (spr19), unsigned 64 bits
+	118: dsisr (dsisr), unsigned 64 bits
+	119: dar (dar), unsigned 64 bits
 	120: spr20 (spr20), unsigned 64 bits
 	121: spr21 (spr21), unsigned 64 bits
-	122: spr22 (spr22), unsigned 64 bits
+	122: dec (dec), unsigned 64 bits
 	123: spr23 (spr23), unsigned 64 bits
 	124: spr24 (spr24), unsigned 64 bits
 	125: spr25 (spr25), unsigned 64 bits
@@ -1524,7 +1524,7 @@
 	353: spr253 (spr253), unsigned 64 bits
 	354: spr254 (spr254), unsigned 64 bits
 	355: spr255 (spr255), unsigned 64 bits
-	356: spr256 (spr256), unsigned 64 bits
+	356: vrsave (vrsave), unsigned 64 bits
 	357: spr257 (spr257), unsigned 64 bits
 	358: spr258 (spr258), unsigned 64 bits
 	359: spr259 (spr259), unsigned 64 bits
@@ -2519,4 +2519,75 @@
 	 85: %y (y), unsigned 64 bits
 EOF
 
+regs_test testfile10 <<\EOF
+integer registers:
+	  0: $v0 (v0), signed 64 bits
+	  1: $t0 (t0), signed 64 bits
+	  2: $t1 (t1), signed 64 bits
+	  3: $t2 (t2), signed 64 bits
+	  4: $t3 (t3), signed 64 bits
+	  5: $t4 (t4), signed 64 bits
+	  6: $t5 (t5), signed 64 bits
+	  7: $t6 (t6), signed 64 bits
+	  8: $t7 (t7), signed 64 bits
+	  9: $s0 (s0), signed 64 bits
+	 10: $s1 (s1), signed 64 bits
+	 11: $s2 (s2), signed 64 bits
+	 12: $s3 (s3), signed 64 bits
+	 13: $s4 (s4), signed 64 bits
+	 14: $s5 (s5), signed 64 bits
+	 15: $s6 (s6), signed 64 bits
+	 16: $a0 (a0), signed 64 bits
+	 17: $a1 (a1), signed 64 bits
+	 18: $a2 (a2), signed 64 bits
+	 19: $a3 (a3), signed 64 bits
+	 20: $a4 (a4), signed 64 bits
+	 21: $a5 (a5), signed 64 bits
+	 22: $t8 (t8), signed 64 bits
+	 23: $t9 (t9), signed 64 bits
+	 24: $t10 (t10), signed 64 bits
+	 25: $t11 (t11), signed 64 bits
+	 26: $ra (ra), address 64 bits
+	 27: $t12 (t12), signed 64 bits
+	 28: $at (at), signed 64 bits
+	 29: $gp (gp), address 64 bits
+	 30: $sp (sp), address 64 bits
+	 31: $zero (zero), signed 64 bits
+	 64: $pc (pc), address 64 bits
+	 66: $unique (unique), address 64 bits
+FPU registers:
+	 32: $f0 (f0), float 64 bits
+	 33: $f1 (f1), float 64 bits
+	 34: $f2 (f2), float 64 bits
+	 35: $f3 (f3), float 64 bits
+	 36: $f4 (f4), float 64 bits
+	 37: $f5 (f5), float 64 bits
+	 38: $f6 (f6), float 64 bits
+	 39: $f7 (f7), float 64 bits
+	 40: $f8 (f8), float 64 bits
+	 41: $f9 (f9), float 64 bits
+	 42: $f10 (f10), float 64 bits
+	 43: $f11 (f11), float 64 bits
+	 44: $f12 (f12), float 64 bits
+	 45: $f13 (f13), float 64 bits
+	 46: $f14 (f14), float 64 bits
+	 47: $f15 (f15), float 64 bits
+	 48: $f16 (f16), float 64 bits
+	 49: $f17 (f17), float 64 bits
+	 50: $f18 (f18), float 64 bits
+	 51: $f19 (f19), float 64 bits
+	 52: $f20 (f20), float 64 bits
+	 53: $f21 (f21), float 64 bits
+	 54: $f22 (f22), float 64 bits
+	 55: $f23 (f23), float 64 bits
+	 56: $f24 (f24), float 64 bits
+	 57: $f25 (f25), float 64 bits
+	 58: $f26 (f26), float 64 bits
+	 59: $f27 (f27), float 64 bits
+	 60: $f28 (f28), float 64 bits
+	 61: $f29 (f29), float 64 bits
+	 62: $f30 (f30), float 64 bits
+	 63: $fpcr (fpcr), unsigned 64 bits
+EOF
+
 exit 0
Index: tests/run-elflint-self.sh
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/tests/run-elflint-self.sh,v
retrieving revision 1.4
diff -u -r1.4 run-elflint-self.sh
--- tests/run-elflint-self.sh	22 Aug 2007 17:11:09 -0000	1.4
+++ tests/run-elflint-self.sh	27 Aug 2007 19:21:49 -0000
@@ -26,12 +26,13 @@
 
 . $srcdir/test-subr.sh
 
+status=0
 runtest() {
 # Uncomment for debuging
 #  echo $1
   if [ -f $1 ]; then
     testrun ../src/elflint --quiet --gnu-ld $1 ||
-    (echo "*** failure in $1"; exit 1)
+    { echo "*** failure in $1"; status=1; }
   fi
 }
 
@@ -57,3 +58,5 @@
 runtest ../libebl/libebl_sh.so
 runtest ../libebl/libebl_sparc.so
 runtest ../libebl/libebl_x86_64.so
+
+exit $status
Index: tests/run-strip-test.sh
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/tests/run-strip-test.sh,v
retrieving revision 1.4
diff -u -r1.4 run-strip-test.sh
--- tests/run-strip-test.sh	22 Aug 2007 17:11:09 -0000	1.4
+++ tests/run-strip-test.sh	27 Aug 2007 19:21:49 -0000
@@ -1,5 +1,5 @@
 #! /bin/sh
-# Copyright (C) 1999, 2000, 2002, 2003, 2005 Red Hat, Inc.
+# Copyright (C) 1999, 2000, 2002, 2003, 2005, 2007 Red Hat, Inc.
 # This file is part of Red Hat elfutils.
 # Written by Ulrich Drepper <drepper@redhat.com>, 1999.
 #
@@ -32,20 +32,28 @@
 
 testfiles $original $stripped $debugfile
 
-tempfiles testfile.temp testfile.debug.temp
+tempfiles testfile.temp testfile.debug.temp testfile.unstrip
 
 testrun ../src/strip -o testfile.temp $debugout $original
 
-cmp $stripped testfile.temp
+status=0
+
+cmp $stripped testfile.temp || status=$?
 
 # Check elflint and the expected result.
-testrun ../src/elflint -q testfile.temp
+testrun ../src/elflint -q testfile.temp || status=$?
 
 test -z "$debugfile" || {
-cmp $debugfile testfile.debug.temp
+cmp $debugfile testfile.debug.temp || status=$?
 
 # Check elflint and the expected result.
-testrun ../src/elflint -q -d testfile.debug.temp
+testrun ../src/elflint -q -d testfile.debug.temp || status=$?
+
+# Now test unstrip recombining those files.
+testrun ../src/unstrip -o testfile.unstrip testfile.temp testfile.debug.temp
+
+# Check that it came back whole.
+testrun ../src/elfcmp --hash-inexact $original testfile.unstrip
 }
 
-exit 0
+exit $status
Index: tests/run-strip-test4.sh
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/tests/run-strip-test4.sh,v
retrieving revision 1.4
diff -u -r1.4 run-strip-test4.sh
--- tests/run-strip-test4.sh	22 Aug 2007 17:11:09 -0000	1.4
+++ tests/run-strip-test4.sh	27 Aug 2007 19:21:49 -0000
@@ -1,5 +1,5 @@
 original=testfile11
-stripped=testfile15
-debugfile=testfile15.debug
+stripped=testfile37
+debugfile=testfile37.debug
 
 . $srcdir/run-strip-test.sh
Index: tests/run-strip-test6.sh
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/tests/run-strip-test6.sh,v
retrieving revision 1.4
diff -u -r1.4 run-strip-test6.sh
--- tests/run-strip-test6.sh	22 Aug 2007 17:11:09 -0000	1.4
+++ tests/run-strip-test6.sh	27 Aug 2007 19:21:49 -0000
@@ -1,5 +1,5 @@
 original=testfile12
-stripped=testfile17
-debugfile=testfile17.debug
+stripped=testfile35
+debugfile=testfile35.debug
 
 . $srcdir/run-strip-test.sh

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

* Re: elfutils import
  2007-08-27 19:29   ` Sami Wagiaalla
@ 2007-08-27 20:21     ` Roland McGrath
  2007-08-29 20:45       ` Sami Wagiaalla
  2007-08-28 13:25     ` Andrew Cagney
  1 sibling, 1 reply; 8+ messages in thread
From: Roland McGrath @ 2007-08-27 20:21 UTC (permalink / raw)
  To: Sami Wagiaalla; +Cc: frysk

That diff was really not useful.  Please post the diff between what you
have in the frysk tree and the corresponding vanilla elfutils source.

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

* Re: elfutils import
  2007-08-27 19:29   ` Sami Wagiaalla
  2007-08-27 20:21     ` Roland McGrath
@ 2007-08-28 13:25     ` Andrew Cagney
  1 sibling, 0 replies; 8+ messages in thread
From: Andrew Cagney @ 2007-08-28 13:25 UTC (permalink / raw)
  To: Sami Wagiaalla; +Cc: Roland McGrath, frysk

Sami Wagiaalla wrote:
>
>> Please show me all the differences in that tree from the upstream 
>> elfutils.
>> You should not be carrying any.
>>   
> Sorry for the late reply... I was away for a couple of days.
>
> I dont think we plan to carry any of these differences.
>
> But I attached the patch anways:
>
> The following files contain conflicts:
>
> configure.ac
> libdwfl/dwfl_module.c
> libdwfl/dwfl_module_addrsym.c
> src/ldlex.c
> tests/Makefile.am
>
> ChangeLog
> backends/ChangeLog
> libdwfl/ChangeLog
> tests/ChangeLog
Sami,

Hmm, this diff looks too big.  Perhaps try diffing our head with the 
last import so you can see what changes there were; like you note we're 
constantly trying to eliminate them.

With regard to the test failures; they're in symtab lookup.  May be 
double check that our temporary fixes were flushed during the import.

Andrew

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

* Re: elfutils import
  2007-08-27 20:21     ` Roland McGrath
@ 2007-08-29 20:45       ` Sami Wagiaalla
  2007-08-30 20:35         ` Andrew Cagney
  0 siblings, 1 reply; 8+ messages in thread
From: Sami Wagiaalla @ 2007-08-29 20:45 UTC (permalink / raw)
  To: Roland McGrath; +Cc: frysk

[-- Attachment #1: Type: text/plain, Size: 369 bytes --]

Roland McGrath wrote:
> That diff was really not useful.  Please post the diff between what you
> have in the frysk tree and the corresponding vanilla elfutils source.
>   
Roland,

My mistake. This branch (sami-elfutils_129-merge-20070827-branch) now 
contains the vanila elfutils sources plus frysk changes to elfutils. I 
attached a diff showing thos changes.

Sami

[-- Attachment #2: frysk_changes --]
[-- Type: text/plain, Size: 6902 bytes --]

Index: ChangeLog
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/ChangeLog,v
retrieving revision 1.1.1.3
retrieving revision 1.16.2.3
diff -u -r1.1.1.3 -r1.16.2.3
--- ChangeLog	22 Aug 2007 17:18:47 -0000	1.1.1.3
+++ ChangeLog	29 Aug 2007 17:13:51 -0000	1.16.2.3
@@ -4,6 +4,10 @@
 	* configure.ac: Don't use libelf-po/POTFILES.in as config file
 	anymore.
 
+2007-05-28  Nurdin Premji  <npremji@redhat.com>
+ 
+	* libdwfl/libdwfl.h: Publicize elf_from_remote_memory.
+
 2007-05-16  Roland McGrath  <roland@redhat.com>
 
 	* configure.ac (AM_INIT_AUTOMAKE): Use -Wno-portability.
@@ -16,6 +20,11 @@
 
 	* configure.ac: Use AM_MAINTAINER_MODE.
 
+2006-08-19  Stepan Kasal  <skasal@redhat.com>
+ 
+	* Makefile.am: Do not run installcheck nor uninstall either.
+	Do not define all targets on one line, attach explanation.
+ 
 2006-07-12  Ulrich Drepper  <drepper@redhat.com>
 
 	* configure.ac (internal_function): Don't use internal visibility.
@@ -25,6 +34,10 @@
 	* configure.ac: Add dummy automake conditional to get dependencies
 	for non-generic linker right.  See src/Makefile.am.
 
+2006-06-27  Rick Moseley  <rmoseley@redhat.com>
+	
+	* Makefile.am: Change to not install for frysk.
+	
 2005-11-18  Roland McGrath  <roland@redhat.com>
 
 	* Makefile.am (DISTCHECK_CONFIGURE_FLAGS): New variable.
Index: Makefile.am
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/Makefile.am,v
retrieving revision 1.1.1.3
retrieving revision 1.8.2.3
diff -u -r1.1.1.3 -r1.8.2.3
--- Makefile.am	22 Aug 2007 17:18:53 -0000	1.1.1.3
+++ Makefile.am	29 Aug 2007 17:13:51 -0000	1.8.2.3
@@ -31,7 +31,7 @@
 SUBDIRS = config m4 lib libelf libebl libdwfl libdw libcpu libasm backends \
 	  src po tests
 
-EXTRA_DIST = elfutils.spec GPG-KEY NOTES EXCEPTION
+EXTRA_DIST = elfutils.spec GPG-KEY NOTES
 
 # Make sure the test install uses lib64 when $LIB will yield lib64.
 # Make sure the test build uses the same compiler, which on e.g. ppc64
@@ -46,6 +46,15 @@
 rpm: dist
 	rpmbuild -ts --sign elfutils-@PACKAGE_VERSION@.tar.gz
 
+# Do not install the copy embedded in frysk:
+## (We cannot put all targets to one line, Automake would not understand.)
+install:
+	: Do not run $@ in elfutils.
+uninstall:
+	: Do not run $@ in elfutils.
+installcheck:
+	: Do not run $@ in elfutils.
+
 # Tell version 3.79 and up of GNU make to not build goals in this
 # directory in parallel.
 .NOTPARALLEL:
Index: backends/ChangeLog
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/backends/ChangeLog,v
retrieving revision 1.1.1.5
retrieving revision 1.11.2.3
diff -u -r1.1.1.5 -r1.11.2.3
--- backends/ChangeLog	22 Aug 2007 17:20:05 -0000	1.1.1.5
+++ backends/ChangeLog	29 Aug 2007 17:13:51 -0000	1.11.2.3
@@ -65,6 +65,11 @@
 	need static object for anything here.  This rule is the only source of
 	.deps/ files.
 
+2006-06-23  Stepan Kasal  <kasal@ucw.cz>
+	
+	* Makefile.am: Work around a bug in GNU make -jN by mentioning *.map.
+	* Makefile.am: Mention the *.o files.
+	
 2006-06-23  Stepan Kasal  <skasal@redhat.com>
 
 	* Makefile.am (PACKAGE_VERSION): Remove superfluous definition.
Index: backends/Makefile.am
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/backends/Makefile.am,v
retrieving revision 1.1.1.3
retrieving revision 1.9.2.3
diff -u -r1.1.1.3 -r1.9.2.3
--- backends/Makefile.am	22 Aug 2007 17:20:07 -0000	1.1.1.3
+++ backends/Makefile.am	29 Aug 2007 17:13:51 -0000	1.9.2.3
@@ -45,6 +45,8 @@
 noinst_LIBRARIES = $(libebl_pic)
 noinst_DATA = $(libebl_pic:_pic.a=.so)
 
+# Workaround a bug in GNU make -jN:
+non-intermediate-maps: $(libebl_pic:_pic.a=.map)
 
 if MUDFLAP
 libelf = ../libelf/libelf.a
@@ -119,6 +121,14 @@
 	else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
 	fi
 
+# The *.o files are deleted at the end of the first run (they are
+# intermediate) and rebuilt in the second one (they get mentioned in
+# autogenerated dependencies).  To avoid this, mention them here:
+# (It seems this makefile does not try to be portable, so the GNU extensions
+# can be used here, too.)
+non-intermediate-objects: $(foreach m,$(modules),$($(m)_SRCS:.c=.o))
+
+
 install: install-am install-ebl-modules
 install-ebl-modules:
 	$(mkinstalldirs) $(DESTDIR)$(libdir)/$(LIBEBL_SUBDIR)
Index: libdwfl/libdwfl.h
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/libdwfl/libdwfl.h,v
retrieving revision 1.1.1.4
retrieving revision 1.11.2.2
diff -u -r1.1.1.4 -r1.11.2.2
--- libdwfl/libdwfl.h	26 Apr 2007 17:20:53 -0000	1.1.1.4
+++ libdwfl/libdwfl.h	29 Aug 2007 17:13:51 -0000	1.11.2.2
@@ -455,6 +455,15 @@
 							const char *regname,
 							int bits, int type),
 				       void *arg);
+				       
+extern Elf *elf_from_remote_memory (GElf_Addr ehdr_vma,
+				    GElf_Addr *loadbasep,
+				    ssize_t (*read_memory) (void *arg,
+							    void *data,
+							    GElf_Addr address,
+							    size_t minread,
+							    size_t maxread),
+				    void *arg);				       
 
 
 #ifdef __cplusplus
Index: tests/ChangeLog
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/tests/ChangeLog,v
retrieving revision 1.1.1.5
retrieving revision 1.19.2.3
diff -u -r1.1.1.5 -r1.19.2.3
--- tests/ChangeLog	22 Aug 2007 17:19:06 -0000	1.1.1.5
+++ tests/ChangeLog	29 Aug 2007 17:13:51 -0000	1.19.2.3
@@ -174,6 +174,10 @@
 	* allregs.c (struct reginfo): Increase size of name.
 	(one_register): Assert that it's big enough.
 
+2006-06-23  Stepan Kasal  <kasal@ucw.cz>
+	
+	* line2addr.c (main): Avoid using sscanf() to prevent a warning.
+ 
 2006-04-04  Roland McGrath  <roland@redhat.com>
 
 	* run-bug1-test.sh: Test a second case, to cover both byte orders.
Index: tests/line2addr.c
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/tests/line2addr.c,v
retrieving revision 1.1.1.1
retrieving revision 1.7.2.2
diff -u -r1.1.1.1 -r1.7.2.2
--- tests/line2addr.c	8 May 2006 20:48:53 -0000	1.1.1.1
+++ tests/line2addr.c	29 Aug 2007 17:13:51 -0000	1.7.2.2
@@ -131,19 +131,18 @@
   for (; cnt < argc; ++cnt)
     {
       struct args a = { .arg = argv[cnt] };
+      char *c = strchr (a.arg, ':');
 
-      switch (sscanf (a.arg, "%a[^:]:%d", &a.file, &a.line))
-	{
-	default:
-	case 0:
-	  printf ("ignored %s\n", argv[cnt]);
-	  continue;
-	case 1:
-	  a.line = 0;
-	  break;
-	case 2:
-	  break;
-	}
+      if (a.arg == NULL) {
+	printf ("ignored %s\n", a.arg);
+	continue;
+      } else if (c == NULL) {
+	a.file = strdup (a.arg);
+	a.line = 0;
+      } else {
+	a.file = strndup (a.arg, c - a.arg);
+	a.line = strtol (c + 1, NULL, 10);
+      }
 
       (void) dwfl_getdwarf (dwfl, &handle_module, &a, 0);
 

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

* Re: elfutils import
  2007-08-29 20:45       ` Sami Wagiaalla
@ 2007-08-30 20:35         ` Andrew Cagney
  0 siblings, 0 replies; 8+ messages in thread
From: Andrew Cagney @ 2007-08-30 20:35 UTC (permalink / raw)
  To: Sami Wagiaalla, Roland McGrath; +Cc: frysk

[-- Attachment #1: Type: text/plain, Size: 1686 bytes --]

Sami Wagiaalla wrote:
> Roland McGrath wrote:
>> That diff was really not useful.  Please post the diff between what you
>> have in the frysk tree and the corresponding vanilla elfutils source.
>>   
> Roland,
>
> My mistake. This branch (sami-elfutils_129-merge-20070827-branch) now 
> contains the vanila elfutils sources plus frysk changes to elfutils. I 
> attached a diff showing thos changes.
>
> Sami

Thanks!  Working through this I found these problems:

> GLOBAL(large_global_at_small_global)
> GLOBAL(small_global_at_large_global)
>         STORE(REG0,REG0)                      <---- HERE
>         NO_OP
>         SIZE(small_global_at_large_global)
>         NO_OP
>         SIZE(large_global_at_small_global)

this isn't "stable" the first of those symbols is choose.

> # A global symbol that has zero size.
> GLOBAL(global_st_size_0)
>         LOAD_IMMED_BYTE (REG0, 0)
>         STORE (REG0, REG0)                <---- HERE
>         NO_OP
this symbol can be missed entirely because min_label is > global_st_size_0.

> # A global symbol, with size, that contains a nested global and local
> # symbols each also with sizes.
> GLOBAL(global_outer)
>         STORE(REG0, REG0)
>         NO_OP
> LOCAL(local_in_global)
>         STORE (REG0, REG0)      <----- HERE
>         NO_OP
>         SIZE(local_in_global)
> .Lglobal_outer:
>         STORE (REG0, REG0)
>         NO_OP
>         SIZE(global_outer)
this isn't stable, the second of local_in_global and global_outer is chosen.

I've attached a context diff of up-stream vs local (they are 
sufficiently different to make a unified diff harder to read). I'll see 
about mearing that !section and !file test.

Andrew




[-- Attachment #2: diffs --]
[-- Type: text/plain, Size: 5565 bytes --]

Index: frysk-imports/elfutils/libdwfl/dwfl_module_addrsym.c
===================================================================
RCS file: /cvs/frysk/frysk-imports/elfutils/libdwfl/dwfl_module_addrsym.c,v
retrieving revision 1.6.2.2
retrieving revision 1.6.2.3
diff -p -r1.6.2.2 -r1.6.2.3
*** frysk-imports/elfutils/libdwfl/dwfl_module_addrsym.c	28 Aug 2007 20:40:47 -0000	1.6.2.2
--- frysk-imports/elfutils/libdwfl/dwfl_module_addrsym.c	30 Aug 2007 19:07:03 -0000	1.6.2.3
*************** dwfl_module_addrsym (Dwfl_Module *mod, G
*** 97,170 ****
        return shndx == addr_shndx;
      }
  
!   /* Keep track of the closest symbol we have seen so far.
!      Here we store only symbols with nonzero st_size.  */
    const char *closest_name = NULL;
    GElf_Word closest_shndx = SHN_UNDEF;
- 
-   /* Keep track of an eligible symbol with st_size == 0 as a fallback.  */
-   const char *sizeless_name = NULL;
-   GElf_Sym sizeless_sym = { 0, 0, 0, 0, 0, SHN_UNDEF };
-   GElf_Word sizeless_shndx = SHN_UNDEF;
- 
-   /* Keep track of the lowest address a relevant sizeless symbol could have.  */
-   GElf_Addr min_label = addr;
- 
-   /* Look through the symbol table for a matching symbol.  */
    for (int i = 1; i < syments; ++i)
      {
        GElf_Sym sym;
        GElf_Word shndx;
        const char *name = INTUSE(dwfl_module_getsym) (mod, i, &sym, &shndx);
!       if (name != NULL
! 	  && sym.st_value <= addr
! 	  && (sym.st_size == 0 || addr - sym.st_value < sym.st_size))
  	{
! 	  /* Even if we don't choose this symbol, its existence
! 	     excludes any sizeless symbol (assembly label) that
! 	     is inside its bounds.  */
! 	  if (sym.st_value + sym.st_size > addr)
! 	    min_label = sym.st_value + sym.st_size;
! 
! 	  /* This symbol is a better candidate than the current one
! 	     if it's a named symbol, not a section or file symbol,
! 	     and is closer to ADDR or is global when it was local.  */
! 	  if (name[0] != '\0'
! 	      && GELF_ST_TYPE (sym.st_info) != STT_SECTION
! 	      && GELF_ST_TYPE (sym.st_info) != STT_FILE
! 	      && (closest_name == NULL
! 		  || closest_sym->st_value < sym.st_value
! 		  || (GELF_ST_BIND (closest_sym->st_info)
! 		      < GELF_ST_BIND (sym.st_info))))
  	    {
! 	      if (sym.st_size != 0)
  		{
! 		  *closest_sym = sym;
! 		  closest_shndx = shndx;
! 		  closest_name = name;
  		}
! 	      else if (same_section (&sym, shndx))
  		{
! 		  /* Handwritten assembly symbols sometimes have no st_size.
! 		     If no symbol with proper size includes the address,
! 		     we'll use the closest one that is in the same section
! 		     as ADDR.  */
! 		  sizeless_sym = sym;
! 		  sizeless_shndx = shndx;
! 		  sizeless_name = name;
  		}
  	    }
  	}
      }
  
!   /* If we found no proper sized symbol to use, fall back to the best
!      candidate sizeless symbol we found, if any.  */
!   if (closest_name == NULL
!       && sizeless_name != NULL && sizeless_sym.st_value >= min_label)
      {
!       *closest_sym = sizeless_sym;
!       closest_shndx = sizeless_shndx;
!       closest_name = sizeless_name;
      }
  
    if (shndxp != NULL)
--- 97,176 ----
        return shndx == addr_shndx;
      }
  
!   /* Look through the symbol table for a matching symbol.  */
    const char *closest_name = NULL;
+   memset(closest_sym, 0, sizeof(*closest_sym));
    GElf_Word closest_shndx = SHN_UNDEF;
    for (int i = 1; i < syments; ++i)
      {
        GElf_Sym sym;
        GElf_Word shndx;
        const char *name = INTUSE(dwfl_module_getsym) (mod, i, &sym, &shndx);
!       if (name != NULL && sym.st_value <= addr)
  	{
! 	  inline void closest (void)
  	    {
! 	      *closest_sym = sym;
! 	      closest_shndx = shndx;
! 	      closest_name = name;
! 	    }
! 	  
! 	  /* This symbol contains ADDR; but is it better than the
! 	     previous candidate?  */
! 	  if (addr < sym.st_value + sym.st_size)
! 	    {
! 	      if (addr >= closest_sym->st_value + closest_sym->st_size)
! 		{
! 		  /* Ha! The previous candidate doesn't even contain
! 		     ADDR; replace it.  */
! 		  closest();
! 		  continue;
! 		}
! 	      if (sym.st_value > closest_sym->st_value)
  		{
! 		  /* This candidate is closer to ADDR.  */
! 		  closest ();
! 		  continue;
  		}
! 	      if (sym.st_value == closest_sym->st_value
! 		  && sym.st_size < closest_sym->st_size)
  		{
! 		  /* This candidate, while having an identical value,
! 		     is at least smaller.  */
! 		  closest ();
! 		  continue;
  		}
+ 	      /* Discard this candidate, no better than the previous
+ 		 sized symbol that contained ADDR.  */
+ 	      continue;
+ 	    }
+ 	  
+ 	  /* The current closest symbol contains ADDR, can't do better
+ 	     than that.  */
+ 	  if (addr < closest_sym->st_value + closest_sym->st_size)
+ 	    continue;
+ 
+ 	  /* Save the symbol which is "closer".  Use the end-address
+ 	     so that a sized symbol that ends closer to an unsized
+ 	     symbol wins (unsized symbols are typically created using
+ 	     hand-written assembler).  */
+ 	  if (sym.st_value + sym.st_size
+ 	      >= closest_sym->st_value + closest_sym->st_size
+ 	      && same_section (&sym, shndx))
+ 	    {
+ 	      closest ();
+ 	      continue;
  	    }
  	}
      }
  
!   /* If the closest symbol has a size doesn't contain ADDR, discard
!      it.  There must be a hole in the symbol table.  */
!   if (closest_sym->st_size > 0
!       && addr >= closest_sym->st_value + closest_sym->st_size)
      {
!       memset(closest_sym, 0, sizeof(*closest_sym));
!       return NULL;
      }
  
    if (shndxp != NULL)

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

end of thread, other threads:[~2007-08-30 20:35 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-08-22 21:45 elfutils import Sami Wagiaalla
2007-08-22 21:52 ` Roland McGrath
2007-08-27 19:29   ` Sami Wagiaalla
2007-08-27 20:21     ` Roland McGrath
2007-08-29 20:45       ` Sami Wagiaalla
2007-08-30 20:35         ` Andrew Cagney
2007-08-28 13:25     ` Andrew Cagney
2007-08-27 18:23 ` Sami Wagiaalla

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).