uos-20sp1 Loongsonシステムはバージョン51のFirefoxブラウザーをコンパイルします。同社はnpapiプラグインバージョン52以降はサポートしていません

2020-04-22 13:48:14

通常のLoongsonシステムは、参照のために次の依存関係を必要とします

1. Loongson公式Webサイトからソースコードをダウンロードします。git clone  git://cgit.loongnix.org/browser/mozilla-esr52.git

2.以下のインストールに依存しますyum install zbar-gtk-devel dbus-devel dbug-glib-devel bzip zip hunspell alsa-lib-devel wireless-tools-devel libXt-devel mesa-libGL-devel startup-notification-devel openssl openssl -devel pulseaudio-libs pulseaudio-libs-devel pulseaudio-libs-glib2 pulseaudio libevent-devel libcurl-devel autoconf213 gstreamer-devel gstreamer gstreamer-plugins-base gstreamer-plugins-base-devel

3. Firefoxディレクトリにコンパイルします:autoconf-2.13 ./mach configure; ./mach build

次のコマンドがエラーを報告し、手動で再生できない場合は、コーディングの問題である可能性があります。

ソースコードはuosでコンパイルされています。表示するには、より優れたドキュメントエディタを使用することをお勧めします

作成者はアプリケーションストアでqtクリエーターを使用しています。コマンドラインで新しいプロジェクトをインストールして開き、既存のプロジェクトをインポートしてファイルをエディターとして表示できます。

 

 インストール手順は次のとおりです。

载火狐浏览器源码

wget  https://ftp.mozilla.org/pub/firefox/releases/51.0/source/firefox-51.0.source.tar.xz
不要用归档管理器解压 uz -d firefox-51.0.source.tar.xz (为什么这个破系统太卡有时会直接卡死) 进入文件夹没有权限添加权限 
chmod 755  ./

 

 
  

コンパイルコマンド:

コマンドのコンパイル時に多くのエラーが発生します。それらのほとんどに依存パッケージがありません

make -f client.mk build

 

異なるシステムバージョンには異なる依存関係が必要です。友人は、エラーに応じて次の依存関係をインストールできます。

著者の依存関係は次のとおりです。

apt-get install g ++ g ++はc ++コンパイラでもあり、build-essential(コレクションコンパイルパッケージ)をインストールできます
。alsa ドライバーをインストールするときに、次のようにapt - get install libgtk- 3 -dev libgtk2 をインストールするように求められます。0 - dev注意してインストールしてください新しくインストールしたシステムからつながる一切のインターフェイスの問題はありません PKG - -config --modversion GTK + 3.0を インストールが成功したかどうかを確認するために APT - GET libgconf2-インストールDEVを APT - GETインストールのlibdbus-glib- 1 - DEV APT - GETインストールlibncursesライブラリを-devが

 

Autoconfコンパイル: 
HTTPのwget:// ftp.gnu.org/gnu/autoconf/autoconf-2.13.tar.gz 
タール-xvzf autoconf- 2.13 .tar.gz形式
のCDのautoconf - 2.13 /  / --programのconfigure-サフィックス= 2.13          -program- =接尾辞接尾辞接尾辞インストーラの名前を指定するために追加されます。
作る
make installを

 

alsaのコンパイルの作成者は、 https: //zhidao.baidu.com/question/1988026317702934907.htmlを参照しています。

alsaドライバをインストールする前に、次のように、カーネルをコンパイルするために必要なツールコンポーネントを最初にインストールする必要があります。#/ etc / init.d / alsa- utils stopサウンドカードをオフにする


最初にコンパイルパッケージをダウンロードし、依存関係がない
場合はパンをインストールすることをお勧めします。#apt - get install build-essential ncurses- dev gettext xmlto 
#apt - get   install linux-headers-`uname -r` libncursesw5- dev 

apt - get install libpulse- dev 

APT - GETインストールlibxt- DEV 

wgetのFTP:// ftp.alsa-project.org/pub/lib/alsa-lib-1.2.2.tar.bz2 

#wgetのFTP:// ftp.alsa-project.org/pub /utils/alsa-utils-1.2.2.tar.bz2をコンパイルして記録する必要はありません
#wget ftp://ftp.alsa-project.org/pub/driver/alsa-driver-1.0.25.tar.bz2 コンパイルして記録する必要はありません

xjfを取る
ALSA-LIB-1.2.2.tar.bz2は、

各フォルダにコンパイル三部作に入る。 / make installを作るのconfigure

ALSA
-driver- 1.025 .tar.bz2とファイルのコンパイルには、この問題を有していても良いです。

ALSA -driver- 1.025 私は最終的にそこにビルトインされているドライバのエラー、正常にコンパイルされませんでした.tar.bz2と。作成者は元のドライバをアンインストールするつもりはなく、サウンドカードの再インストールに問題がある可能性があります。
作成者は正常にコンパイルせず、このステップを正常にコンパイルしました

 

エラーを解決します。

 エラー: 'CarrySet'は 'js :: jit :: Assembler'のメンバーではありません
             masm.branchAdd32(Assembler :: CarrySet、......  

11のCarrySet」値は、JS / SRC / JIT /なし/ MacroAssembler-で定義された列挙ですnone.hレーン   
削除機能。masm.branchAdd32(Assembler :: CarrySet、......解決する方法はありません。削除するだけです。友達が解決してくれたらコメントをください。ありがとうございます。

 

MAsmJSLoadHeap、MAsmJSStoreHeapクラスなし   mir->バリアアフター()ミラー->バリアビフォー()ミラー-> isAtomicAccess()ミラー->ニーズBoundsCheck()   関数エラーjs / src / jit / MIR.h次の2つのクラスを置き換えますMWasmMemoryAccessクラスの書き換え

クラスMAsmJSLoadHeap パブリックMUnaryInstruction、
     公共MAsmJSMemoryAccess、
     公共NoTypePolicy ::データ
{ 
    MAsmJSLoadHeap(MDefinition * ベース、スカラー::タイプアクセスタイプ、MemoryBarrierBits barrierBefore = MembarNobits、
                   MemoryBarrierBits barrierAfter = MembarNobits)
      :MUnaryInstruction(ベース)、
        MAsmJSMemoryAccess(アクセスタイプ)、
      barrierBefore_(バリアビフォア)、
      バリアアフター_(バリアアフター)
  // MAsmJSLoadHeap(MDefinition * base、Scalar :: Type accessType)//todo yuanban
     // :MUnaryInstruction(base)、
      // MAsmJSMemoryAccess(accessType)
    { 
        setResultType(ScalarTypeToMIRType(accessType)); 
    } 

  public 

    INSTRUCTION_HEADER(AsmJSLoadHeap)
    TRIVIAL_NEW_WRAPPERS 

    MDefinition * base()const { return getOperand(0 ); }
     void replaceBase(MDefinition * newBase){replaceOperand(0 、newBase); } 

    bool congruentTo(const MDefinition * ins)const  override ;
    AliasSet getAliasSet()const  override {
         return AliasSet :: Load(AliasSet :: AsmJSHeap); 
    } 
    AliasType mightAlias(CONST MDefinition * DEF)CONST  オーバーライド//   todo 
    MemoryBarrierBitsバリアビフォー_; 
    MemoryBarrierBitsバリアアフター_; 
    MemoryBarrierBits barrierBefore()のconst { 戻りbarrierBefore_と、} 
    MemoryBarrierBitsバリアアフター()const { リターンバリアアフター_; }
     bool isAtomicAccess()const { return(barrierBefore_ |バリアアフター_)!= MembarNobits; } 
}; 

クラスMAsmJSStoreHeap パブリックMBinaryInstruction、
     公共MAsmJSMemoryAccess、
     公共NoTypePolicy ::データ
{ 
    MAsmJSStoreHeap(MDefinition * ベース、スカラー::タイプアクセスタイプ、MDefinition * V、MemoryBarrierBits barrierBefore = MembarNobits、
                    MemoryBarrierBits barrierAfter = MembarNobits)
      :MBinaryInstruction(ベース、V)、
        MAsmJSMemoryAccess (accessType)、
        barrierBefore_(barrierBefore)、
        バリアアフター(バリアアフター)
    {} 

  public 
    INSTRUCTION_HEADER(AsmJSStoreHeap)
    TRIVIAL_NEW_WRAPPERS 

    MDefinition * base()const { return getOperand(0 ); }
     void replaceBase(MDefinition * newBase){replaceOperand(0 、newBase); } 
    MDefinition * value()const { return getOperand(1 ); } 

    AliasSet getAliasSet()const  override {
         return AliasSet :: Store(AliasSet :: AsmJSHeap); 
    }
     //   todo 
    MemoryBarrierBitsバリアビフォー_;
    MemoryBarrierBitsバリアアフター_; 
    MemoryBarrierBits barrierBefore()のconst { 戻りbarrierBefore_と、} 
    MemoryBarrierBitsバリアアフター()const { リターンバリアアフター_; }
     bool isAtomicAccess()const { return(barrierBefore_ |バリアアフター_)!= MembarNobits; } 
};

 

错误 error: ‘class js::jit::MAsmJSAtomicBinopHeap’ has no member named ‘needsBoundsCheck’; did you mean ‘isBoundsCheck’?
     if (mir->needsBoundsCheck()) {
              isBoundsCheck
言うまでもなく、コンパイラーはコンパイラーにそれを変更させました。needsBoundsCheck()はisBoundsCheck()に置き換えられます

 Firefoxは     obj-mips64el-unknown-linux-gnu / dist / binにあります。

 

おすすめ

転載: www.cnblogs.com/lijiabin-bj/p/12751654.html