📄 perlhpux.1
字号:
PA-RISC 1.1 platform, even if they are running the same version ofHP-UX. If you are building Perl on a PA-RISC 2.0 platform and want thatPerl to also run on a PA-RISC 1.1, the compiler flags +DAportable and+DS32 should be used..PPIt is no longer possible to compile PA-RISC 1.0 executables on eitherthe PA-RISC 1.1 or 2.0 platforms. The command-line flags are accepted,but the resulting executable will not run when transferred to a PA-RISC1.0 system..Sh "PA-RISC 1.0".IX Subsection "PA-RISC 1.0"The original version of PA-RISC, \s-1HP\s0 no longer sells any system with this chip..PPThe following systems contained PA-RISC 1.0 chips:.PP.Vb 2\& 600, 635, 645, 808, 815, 822, 825, 832, 834, 835, 840, 842, 845, 850,\& 852, 855, 860, 865, 870, 890.Ve.Sh "PA-RISC 1.1".IX Subsection "PA-RISC 1.1"An upgrade to the PA-RISC design, it shipped for many years in many differentsystem..PPThe following systems contain with PA-RISC 1.1 chips:.PP.Vb 10\& 705, 710, 712, 715, 720, 722, 725, 728, 730, 735, 742, 743, 744, 745,\& 747, 750, 755, 770, 777, 778, 779, 800, 801, 803, 806, 807, 809, 811,\& 813, 816, 817, 819, 821, 826, 827, 829, 831, 837, 839, 841, 847, 849,\& 851, 856, 857, 859, 867, 869, 877, 887, 891, 892, 897, A180, A180C,\& B115, B120, B132L, B132L+, B160L, B180L, C100, C110, C115, C120,\& C160L, D200, D210, D220, D230, D250, D260, D310, D320, D330, D350,\& D360, D410, DX0, DX5, DXO, E25, E35, E45, E55, F10, F20, F30, G30,\& G40, G50, G60, G70, H20, H30, H40, H50, H60, H70, I30, I40, I50, I60,\& I70, J200, J210, J210XC, K100, K200, K210, K220, K230, K400, K410,\& K420, S700i, S715, S744, S760, T500, T520.Ve.Sh "PA-RISC 2.0".IX Subsection "PA-RISC 2.0"The most recent upgrade to the PA-RISC design, it added support for64\-bit integer data..PPAs of the date of this document's last update, the following systemscontain PA-RISC 2.0 chips:.PP.Vb 8\& 700, 780, 781, 782, 783, 785, 802, 804, 810, 820, 861, 871, 879, 889,\& 893, 895, 896, 898, 899, A400, A500, B1000, B2000, C130, C140, C160,\& C180, C180+, C180\-XP, C200+, C400+, C3000, C360, C3600, CB260, D270,\& D280, D370, D380, D390, D650, J220, J2240, J280, J282, J400, J410,\& J5000, J5500XM, J5600, J7000, J7600, K250, K260, K260\-EG, K270, K360,\& K370, K380, K450, K460, K460\-EG, K460\-XP, K470, K570, K580, L1000,\& L2000, L3000, N4000, R380, R390, SD16000, SD32000, SD64000, T540,\& T600, V2000, V2200, V2250, V2500, V2600.Ve.PPJust before \s-1HP\s0 took over Compaq, some systems were renamed. the linkthat contained the explanation is dead, so here's a short summary:.PP.Vb 3\& HP 9000 A\-Class servers, now renamed HP Server rp2400 series.\& HP 9000 L\-Class servers, now renamed HP Server rp5400 series.\& HP 9000 N\-Class servers, now renamed HP Server rp7400.\&\& rp2400, rp2405, rp2430, rp2450, rp2470, rp3410, rp3440, rp4410,\& rp4440, rp5400, rp5405, rp5430, rp5450, rp5470, rp7400, rp7405,\& rp7410, rp7420, rp7440, rp8400, rp8420, rp8440, Superdome.Ve.PPThe current naming convention is:.PP.Vb 10\& aadddd\& ||||\`+\- 00 \- 99 relative capacity & newness (upgrades, etc.)\& |||\`\-\-\- unique number for each architecture to ensure different\& ||| systems do not have the same numbering across\& ||| architectures\& ||\`\-\-\-\- 1 \- 9 identifies family and/or relative positioning\& ||\& |\`\-\-\-\-\- c = ia32 (cisc)\& | p = pa\-risc\& | x = ia\-64 (Itanium & Itanium 2)\& | h = housing\& \`\-\-\-\-\-\- t = tower\& r = rack optimized\& s = super scalable\& b = blade\& sa = appliance.Ve.Sh "Itanium Processor Family (\s-1IPF\s0) and HP-UX".IX Subsection "Itanium Processor Family (IPF) and HP-UX"HP-UX also runs on the new Itanium processor. This requires the useof a different version of HP-UX (currently 11.23 or 11i v2), and withthe exception of a few differences detailed below and in later sections,Perl should compile with no problems..PPAlthough PA-RISC binaries can run on Itanium systems, you should notattempt to use a PA-RISC version of Perl on an Itanium system. This isbecause shared libraries created on an Itanium system cannot be loadedwhile running a PA-RISC executable..PP\&\s-1HP\s0 Itanium 2 systems are usually refered to with model description\&\*(L"\s-1HP\s0 Integrity\*(R"..Sh "Itanium, Itanium 2 & Madison 6".IX Subsection "Itanium, Itanium 2 & Madison 6"\&\s-1HP\s0 also ships servers with the 128\-bit Itanium processor(s). The cx26x0is told to have Madison 6. As of the date of this document's last update,the following systems contain Itanium or Itanium 2 chips (this is likelyto be out of date):.PP.Vb 3\& BL60p, BL860c, cx2600, cx2620, rx1600, rx1620, rx2600, rx2600hptc,\& rx2620, rx2660, rx3600, rx4610, rx4640, rx5670, rx6600, rx7420,\& rx7620, rx7640, rx8420, rx8620, rx8640, rx9610, sx1000, sx2000.Ve.PPTo see all about your machine, type.PP.Vb 3\& # model\& ia64 hp server rx2600\& # /usr/contrib/bin/machinfo.Ve.Sh "Building Dynamic Extensions on HP-UX".IX Subsection "Building Dynamic Extensions on HP-UX"HP-UX supports dynamically loadable libraries (shared libraries).Shared libraries end with the suffix .sl. On Itanium systems,they end with the suffix .so..PPShared libraries created on a platform using a particular PA-RISCversion are not usable on platforms using an earlier PA-RISC version bydefault. However, this backwards compatibility may be enabled using thesame +DAportable compiler flag (with the same PA-RISC 1.0 caveatmentioned above)..PPShared libraries created on an Itanium platform cannot be loaded ona PA-RISC platform. Shared libraries created on a PA-RISC platformcan only be loaded on an Itanium platform if it is a PA-RISC executablethat is attempting to load the PA-RISC library. A PA-RISC sharedlibrary cannot be loaded into an Itanium executable nor vice-versa..PPTo create a shared library, the following steps must be performed:.PP.Vb 4\& 1. Compile source modules with +z or +Z flag to create a .o module\& which contains Position\-Independent Code (PIC). The linker will\& tell you in the next step if +Z was needed.\& (For gcc, the appropriate flag is \-fpic or \-fPIC.)\&\& 2. Link the shared library using the \-b flag. If the code calls\& any functions in other system libraries (e.g., libm), it must\& be included on this line..Ve.PP(Note that these steps are usually handled automatically by the extension'sMakefile)..PPIf these dependent libraries are not listed at shared library creationtime, you will get fatal \*(L"Unresolved symbol\*(R" errors at run time when thelibrary is loaded..PPYou may create a shared library that refers to another library, whichmay be either an archive library or a shared library. If this secondlibrary is a shared library, this is called a \*(L"dependent library\*(R". Thedependent library's name is recorded in the main shared library, but itis not linked into the shared library. Instead, it is loaded when themain shared library is loaded. This can cause problems if you build anextension on one system and move it to another system where thelibraries may not be located in the same place as on the first system..PPIf the referred library is an archive library, then it is treated as asimple collection of .o modules (all of which must contain \s-1PIC\s0). Thesemodules are then linked into the shared library..PPNote that it is okay to create a library which contains a dependentlibrary that is already linked into perl..PPSome extensions, like DB_File and Compress::Zlib use/require prebuiltlibraries for the perl extensions/modules to work. If these librariesare built using the default configuration, it might happen that yourun into an error like \*(L"invalid loader fixup\*(R" during load phase.\&\s-1HP\s0 is aware of this problem. Search the HP-UX cxx-dev forums fordiscussions about the subject. The short answer is that \fBeverything\fR(all libraries, everything) must be compiled with \f(CW\*(C`+z\*(C'\fR or \f(CW\*(C`+Z\*(C'\fR to be\&\s-1PIC\s0 (position independent code). (For gcc, that would be\&\f(CW\*(C`\-fpic\*(C'\fR or \f(CW\*(C`\-fPIC\*(C'\fR). In HP-UX 11.00 or newer the linkererror message should tell the name of the offending object file..PPA more general approach is to intervene manually, as with an example forthe DB_File module, which requires SleepyCat's libdb.sl:.PP.Vb 7\& # cd .../db\-3.2.9/build_unix\& # vi Makefile\& ... add +Z to all cflags to create shared objects\& CFLAGS= \-c $(CPPFLAGS) +Z \-Ae +O2 +Onolimit \e\& \-I/usr/local/include \-I/usr/include/X11R6\& CXXFLAGS= \-c $(CPPFLAGS) +Z \-Ae +O2 +Onolimit \e\& \-I/usr/local/include \-I/usr/include/X11R6\&\& # make clean\& # make\& # mkdir tmp\& # cd tmp\& # ar x ../libdb.a\& # ld \-b \-o libdb\-3.2.sl *.o\& # mv libdb\-3.2.sl /usr/local/lib\& # rm *.o\& # cd /usr/local/lib\& # rm \-f libdb.sl\& # ln \-s libdb\-3.2.sl libdb.sl\&\& # cd .../DB_File\-1.76\& # make distclean\& # perl Makefile.PL\& # make\& # make test\& # make install.Ve.PPAs of db\-4.2.x it is no longer needed to do this by hand. Sleepycathas changed the configuration process to add +z on HP-UX automatically..PP.Vb 2\& # cd .../db\-4.2.25/build_unix\& # env CFLAGS=+DD64 LDFLAGS=+DD64 ../dist/configure.Ve.PPshould work to generate 64bit shared libraries for HP-UX 11.00 and 11i..PPIt is no longer possible to link PA-RISC 1.0 shared libraries (eventhough the command-line flags are still present)..PPPA-RISC and Itanium object files are not interchangeable. Althoughyou may be able to use ar to create an archive library of PA-RISCobject files on an Itanium system, you cannot link against it usingan Itanium link editor..Sh "The \s-1HP\s0 \s-1ANSI\s0 C Compiler".IX Subsection "The HP ANSI C Compiler"When using this compiler to build Perl, you should make sure that theflag \-Aa is added to the cpprun and cppstdin variables in the config.shfile (though see the section on 64\-bit perl below). If you are using arecent version of the Perl distribution, these flags are set automatically..PPEven though HP-UX 10.20 and 11.00 are not actively maintained by \s-1HP\s0anymore, updates for the \s-1HP\s0 \s-1ANSI\s0 C compiler are still available fromtime to time, and it might be advisable to see if updates are applicable.At the moment of writing, the latests available patches for 11.00 thatshould be applied are \s-1PHSS_35098\s0, \s-1PHSS_35175\s0, \s-1PHSS_35100\s0, \s-1PHSS_33036\s0,and \s-1PHSS_33902\s0). If you have a \s-1SUM\s0 account, you can use it to searchfor updates/patches. Enter \*(L"\s-1ANSI\s0\*(R" as keyword..Sh "The \s-1GNU\s0 C Compiler".IX Subsection "The GNU C Compiler"When you are going to use the \s-1GNU\s0 C compiler (gcc), and you don't havegcc yet, you can either build it yourself from the sources (availablefrom e.g. http://www.gnu.ai.mit.edu/software/gcc/releases.html) or fetcha prebuilt binary from the \s-1HP\s0 porting center. There are two places wheregcc prebuilds can be fetched; the first and best (for HP-UX 11 only) ishttp://h21007.www2.hp.com/dspp/tech/tech_TechSoftwareDetailPage_IDX/1,1703,547,00.htmlthe second is http://hpux.cs.utah.edu/hppd/hpux/Gnu/ where you can alsofind the \s-1GNU\s0 binutils package. (Browse through the list, because thereare often multiple versions of the same package available)..PPAbove mentioned distributions are depots. H.Merijn Brand has made prebuiltgcc binaries available on http://mirrors.develooper.com/hpux/ and/or
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -