Projects

Ticket #10 (new enhancement request)

Opened 4 years ago

Last modified 11 months ago

Need DSS 6.0.3 fixes for Solaris 64bit

Reported by: murata@… Owned by:
Priority: critical Version: Solaris
Keywords: Cc:

Description

Need fixes that support cross platform compiles.

In progress fixes are posted To: streaming-server-dev@… ; streaming-server-users@… From: sverker@… Files: attached.

Hi all, Volkert kindly gave me an account on his server to solve the x86_64 problem. Now it compiles without any 64-bit related errors or warnings as I can see but I haven't acctually run it yet. Please try it out and see if it works. The patch should be applied on top of my previous patch:  http://www.abrahamsson.com/dss-6.0.3-x86_64.patch  http://www.abrahamsson.com/DarwinStreamingServer-6.0.3-2.src.rpm If the rpm builds ok then at least it does compile... /Sverker

Change History

Changed 4 years ago by bpkroth@…

I was just about to submit one of my own :)

Also, it wasn't stated here, but I had to apply the x86 patch from ticket #7 before this one would apply cleanly.

This builds cleanly but results in a segfault when QT clients attempt to connect to the server. VLC running over TCP seems unaffected.

Steps to reproduce:

1) ./Buildit

2) ./DarwinStreamingServer -d

3) Open up  rtsp://streamingserver/sample_h264_1mbit.mp4 in QT (v7.4.1 in my case)

Here's some gdb output:

# gdb program `ps -A | grep Darwin | awk '{print $1}'` -x gdb_script
GNU gdb 6.7.1
Copyright (C) 2007 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu"...
program: No such file or directory.
Attaching to process 10090
Reading symbols from /usr/local/src/dss/DarwinStreamingSrvr6.0.3-Source.patched/DarwinStreamingServer...done.
Using host libthread_db library "/lib/libthread_db.so.1".
Reading symbols from /lib64/libpthread.so.0...done.
[Thread debugging using libthread_db enabled]
[New Thread 0x2ab70403eb20 (LWP 10090)]
[New Thread 0x42804950 (LWP 10095)]
[New Thread 0x42003950 (LWP 10094)]
[New Thread 0x41802950 (LWP 10093)]
[New Thread 0x41001950 (LWP 10092)]
[New Thread 0x40800950 (LWP 10091)]
Loaded symbols for /lib/libpthread.so.0
Reading symbols from /lib64/libdl.so.2...done.
Loaded symbols for /lib/libdl.so.2
Reading symbols from /usr/lib64/gcc/x86_64-pc-linux-gnu/4.1.2/libstdc++.so.6...done.
Loaded symbols for /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/libstdc++.so.6
Reading symbols from /lib64/libm.so.6...done.
Loaded symbols for /lib/libm.so.6
Reading symbols from /lib64/libcrypt.so.1...done.
Loaded symbols for /lib/libcrypt.so.1
Reading symbols from /lib64/libgcc_s.so.1...done.
Loaded symbols for /lib/libgcc_s.so.1
Reading symbols from /lib64/libc.so.6...done.
Loaded symbols for /lib/libc.so.6
Reading symbols from /lib64/ld-linux-x86-64.so.2...done.
Loaded symbols for /lib64/ld-linux-x86-64.so.2
Reading symbols from /lib64/libnss_files.so.2...done.
Loaded symbols for /lib/libnss_files.so.2
0x00002ab703d917e1 in nanosleep () from /lib/libc.so.6
(gdb) continue
Continuing.

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x41802950 (LWP 10093)]
RTPStream::AppendTransport (this=0x7ef5d0, request=0x7eb8a0) at CommonUtilitiesLib/StrPtrLen.h:99
99              StrPtrLen& operator=(const StrPtrLen& newStr) { Ptr = newStr.Ptr; Len = newStr.Len;
(gdb) bt
#0  RTPStream::AppendTransport (this=0x7ef5d0, request=0x7eb8a0) at CommonUtilitiesLib/StrPtrLen.h:99
#1  0x000000000042ab13 in RTPStream::SendSetupResponse (this=0x7ef5d0, inRequest=0x7eb8a0) at Server.tproj/RTPStream.cpp:637
#2  0x000000000041017b in QTSSCallbacks::QTSS_SendStandardRTSPResponse (inRTSPRequest=<value optimized out>, inRTPInfo=0x0, inFlags=<value optimized out>)
    at Server.tproj/QTSSCallbacks.cpp:578
#3  0x0000000000466152 in DoSetup (inParamBlock=0x7e2cf8) at APIModules/QTSSFileModule/QTSSFileModule.cpp:1148
#4  0x0000000000468ae7 in QTSSFileModuleDispatch (inRole=<value optimized out>, inParamBlock=0x7e2cf8) at APIModules/QTSSFileModule/QTSSFileModule.cpp:552
#5  0x000000000043e6f9 in RTSPSession::Run (this=0x7e1d10) at Server.tproj/QTSSModule.h:108
#6  0x00000000004af7d5 in TaskThread::Entry (this=0x7b6a00) at Task.cpp:236
#7  0x00000000004abc7f in OSThread::_Entry (inThread=0x7b6a00) at OSThread.cpp:262
#8  0x00002ab702f1e047 in start_thread () from /lib/libpthread.so.0
#9  0x00002ab703dbf28d in clone () from /lib/libc.so.6
#10 0x0000000000000000 in ?? ()

I got stuck here, decided to file a bug, and lo - it already exists.

Some other comments:

1) The binaries produced by doing ./Buildit on an i686 machine work just fine.

2) The binaries produced by adding -m32 to the Buildit COMPILER_FLAGS work just fine.

I'm running Gentoo if it makes a difference to anyone. Let me know if you need more testing or info.

Thanks, Brian

Note: See TracTickets for help on using tickets.