Este es el comando perlhpux que se puede ejecutar en el proveedor de alojamiento gratuito de OnWorks utilizando una de nuestras múltiples estaciones de trabajo en línea gratuitas, como Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS.
PROGRAMA:
NOMBRE
perlhpux - Perl versión 5 en sistemas Hewlett-Packard Unix (HP-UX)
DESCRIPCIÓN
Este documento describe varias funciones del sistema operativo Unix de HP (HP-UX) que
afectará cómo se compila y / o ejecuta Perl versión 5 (de ahora en adelante sólo Perl).
Usando perl as transportado con HP-UX
Versión de la aplicación de septiembre de 2001, HP-UX 11.00 es la primera que se envía con Perl. Por el
tiempo fue perl-5.6.1 en / opt / perl. La primera aparición está en el CD 5012-7954 y puede
instalado usando
swinstall -s / cdrom perl
suponiendo que haya montado ese CD en / cdrom.
Esa compilación era una compilación multiproceso hppa-1.1 portátil que admite archivos grandes compilados
con gcc-2.9-hppa-991112.
Si realiza una nueva instalación, entonces (un nuevo) Perl se instalará automáticamente.
Los sistemas HP-UX preinstalados ahora tienen versiones más recientes de Perl y los módulos actualizados.
Las compilaciones oficiales (subprocesadas) de HP, ya que se envían en el DVD / CD de la aplicación
están disponibles en
<http://www.software.hp.com/portal/swdepot/displayProductInfo.do? productNumber = PERL> para
tanto PA-RISC como IPF (Familia de procesadores Itanium). Están construidos con HP ANSI-C
compilador. Hasta 5.8.8 eso fue hecho por ActiveState.
Para ver qué versión se incluye en el DVD (se supone que aquí está montado en / cdrom), emita
este comando:
# swlist -s / cdrom perl
# perl D.5.8.8.B 5.8.8 Lenguaje de programación Perl
perl.Perl5-32 D.5.8.8.B 32-bit 5.8.8 Lenguaje de programación Perl con extensiones
perl.Perl5-64 D.5.8.8.B 64-bit 5.8.8 Lenguaje de programación Perl con extensiones
Para ver qué está instalado en su sistema:
# lista sw -R perl
# perl E.5.8.8.J Lenguaje de programación Perl
# perl.Perl5-32 E.5.8.8.J Lenguaje de programación Perl de 32 bits con extensiones
perl.Perl5-32.PERL-MAN E.5.8.8.J Páginas de manual de Perl de 32 bits para IA
perl.Perl5-32.PERL-RUN E.5.8.8.J Binarios de Perl de 32 bits para IA
# perl.Perl5-64 E.5.8.8.J Lenguaje de programación Perl de 64 bits con extensiones
perl.Perl5-64.PERL-MAN E.5.8.8.J Páginas de manual de Perl de 64 bits para IA
perl.Perl5-64.PERL-RUN E.5.8.8.J Binarios de Perl de 64 bits para IA
Usando perl del HP porting centro
El centro de portabilidad de HP intenta mantenerse al día con la demanda de los clientes y lanzar actualizaciones de Open
Comunidad de origen. Tener disponibles binarios de Perl precompilados es obvio, aunque
date "es algo relativo. En el momento de escribir este artículo, solo estaba disponible perl-5.10.1 (con
5.16.3 siendo la última versión estable desde el punto de vista de los porteadores).
Los centros de transferencia de HP están limitados en cuanto a los sistemas a los que se les permite migrar y
Por lo general, elija las dos versiones de sistema operativo más recientes disponibles.
HP ha solicitado al centro de portabilidad que mueva los binarios de código abierto de / opt a / usr / local, asi que
Los binarios producidos desde principios de julio de 2002 se encuentran en / usr / local.
Una de las URL de los centros de transferencia de HP eshttp://hpux.connect.org.uk/> El puerto actualmente
disponible está construido con GNU gcc.
Otros pre-construido perl binarios
Para obtener depósitos de perl aún más recientes para toda la gama de HP-UX, visite H.Merijn Brand's
sitio enhttp://mirrors.develooper.com/hpux/#Perl>. Lea atentamente las notas para ver si
las versiones disponibles se adaptan a sus necesidades.
Compilación Perl 5 on HP-UX
Al compilar Perl, debe utilizar un compilador ANSI C. El compilador de C que viene con todos
Los sistemas HP-UX son un compilador de K&R que solo debe usarse para construir nuevos núcleos.
Perl se puede compilar con el compilador ANSI C de HP o con gcc. El primero es
recomendado, ya que no solo puede compilar Perl sin dificultad, sino que también puede tomar
ventaja de las funciones enumeradas más adelante que requieren el uso de comandos específicos del compilador de HP-
banderas de línea.
Si decide utilizar gcc, asegúrese de que su instalación sea reciente y completa, y asegúrese de
para leer el archivo INSTALL de Perl para obtener más detalles específicos de gcc.
PA-RISC
Los sistemas Unix HP9000 de HP se ejecutan en el chip Precision Architecture (PA-RISC) de HP. HP-UX
Solía funcionar con la familia de chips Motorola MC68000, pero cualquier máquina con este chip
es bastante obsoleto y este documento no intentará abordar problemas para compilar Perl
en el chipset de Motorola.
La versión de PA-RISC en el momento de la última actualización de este documento es 2.0, que también
lo último que habrá. Los sistemas HP PA-RISC generalmente se denominan con una descripción del modelo
"HP 9000". La última CPU de esta serie es la PA-8900. Soporte para arquitectura PA-RISCd
Las máquinas finalizan oficialmente como se muestra en la siguiente tabla:
Hoja de ruta del fin de la vida útil de PA-RISC
+ -------- + ---------------- + ---------------- + ------ ----------- +
| HP9000 | Superdome | PA-8700 | Primavera de 2011 |
| 4-128 | | PA-8800 / sx1000 | Verano 2012 |
| núcleos | | PA-8900 / sx1000 | 2014 |
| | | PA-8900 / sx2000 | 2015 |
+ -------- + ---------------- + ---------------- + ------ ----------- +
| HP9000 | rp7410, rp8400 | PA-8700 | Primavera de 2011 |
| 2-32 | rp7420, rp8420 | PA-8800 / sx1000 | 2012 |
| núcleos | rp7440, rp8440 | PA-8900 / sx1000 | Otoño de 2013 |
| | | PA-8900 / sx2000 | 2015 |
+ -------- + ---------------- + ---------------- + ------ ----------- +
| HP9000 | rp44x0 | PA-8700 | Primavera de 2011 |
| 1-8 | | PA-8800 / rp44x0 | 2012 |
| núcleos | | PA-8900 / rp44x0 | 2014 |
+ -------- + ---------------- + ---------------- + ------ ----------- +
| HP9000 | rp34x0 | PA-8700 | Primavera de 2011 |
| 1-4 | | PA-8800 / rp34x0 | 2012 |
| núcleos | | PA-8900 / rp34x0 | 2014 |
+ -------- + ---------------- + ---------------- + ------ ----------- +
Desdehttp://www.hp.com/products1/evolution/9000/faqs.html>
La última fecha de pedido de los sistemas HP 9000 fue el 31 de diciembre de 2008.
En el archivo se incluye una lista completa de los modelos en el momento en que se creó el sistema operativo.
/usr/sam/lib/mo/sched.models. La primera columna corresponde a la última parte de la salida.
del comando "modelo". La segunda columna es la versión PA-RISC y la tercera columna es
el tipo exacto de chip utilizado. (Empiece a navegar en la parte inferior para evitar confusiones ;-)
# modelo
9000/800 / L1000-44
# grep L1000-44 /usr/sam/lib/mo/sched.modelos
L1000-44 2.0 PA8500
Portabilidad Entre PA-RISC Source-Connect
Un ejecutable compilado en una plataforma PA-RISC 2.0 no se ejecutará en un PA-RISC 1.1
plataforma, incluso si están ejecutando la misma versión de HP-UX. Si está construyendo Perl en
una plataforma PA-RISC 2.0 y desea que Perl también se ejecute en un PA-RISC 1.1, el compilador marca
Se deben utilizar + DAportable y + DS32.
Ya no es posible compilar ejecutables PA-RISC 1.0 en PA-RISC 1.1 o
Plataformas 2.0. Se aceptan los indicadores de la línea de comandos, pero el ejecutable resultante no
se ejecuta cuando se transfiere a un sistema PA-RISC 1.0.
PA-RISC 1.0
La versión original de PA-RISC, HP ya no vende ningún sistema con este chip.
Los siguientes sistemas contenían chips PA-RISC 1.0:
600, 635, 645, 808, 815, 822, 825, 832, 834, 835, 840, 842, 845, 850,
852, 855, 860, 865, 870, 890
PA-RISC 1.1
Una actualización del diseño PA-RISC, se envió durante muchos años en muchos sistemas diferentes.
Los siguientes sistemas contienen chips PA-RISC 1.1:
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
PA-RISC 2.0
La actualización más reciente al diseño PA-RISC agregó soporte para datos enteros de 64 bits.
A la fecha de la última actualización de este documento, los siguientes sistemas contienen PA-RISC 2.0
papas fritas:
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
Justo antes de que HP se hiciera cargo de Compaq, se cambió el nombre de algunos sistemas. el enlace que contenía el
La explicación está muerta, así que aquí hay un breve resumen:
Servidores HP 9000 A-Class, ahora renombrados como HP Server serie rp2400.
Servidores HP 9000 L-Class, ahora renombrados como HP Server serie rp5400.
Servidores HP 9000 N-Class, ahora renombrados como 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, Superdomo
La convención de nomenclatura actual es:
agregar
|||| `+ - 00 - 99 capacidad relativa y novedad (actualizaciones, etc.)
||| `--- número único para cada arquitectura para garantizar diferentes
||| los sistemas no tienen la misma numeración en
||| arquitecturas
|| `---- 1 - 9 identifica la posición familiar y / o relativa
||
| `----- c = ia32 (cisc)
| p = parisc
| x = ia-64 (Itanium e Itanium 2)
| h = vivienda
`------ t = torre
r = rack optimizado
s = super escalable
b = hoja
sa = aparato
Itanium Procesador Familia (FPI) y HP-UX
HP-UX también se ejecuta en el nuevo procesador Itanium. Esto requiere el uso de un
versión de HP-UX (actualmente 11.23 o 11i v2), y con la excepción de algunas diferencias
que se detalla a continuación y en secciones posteriores, Perl debería compilarse sin problemas.
Aunque los binarios PA-RISC pueden ejecutarse en sistemas Itanium, no debe intentar utilizar un PA-
Versión RISC de Perl en un sistema Itanium. Esto se debe a que las bibliotecas compartidas creadas en un
El sistema Itanium no se puede cargar mientras se ejecuta un ejecutable PA-RISC.
Los sistemas HP Itanium 2 generalmente se denominan con la descripción de modelo "Integridad HP".
itanio, Itanium 2 & Madison 6
HP también envía servidores con el (los) procesador (es) Itanium de 128 bits. Se le dice al cx26x0 que tenga
Madison 6. A la fecha de la última actualización de este documento, los siguientes sistemas contienen
Chips Itanium o Itanium 2 (es probable que estén desactualizados):
BL60p, BL860c, BL870c, BL890c, cx2600, cx2620, rx1600, rx1620, rx2600,
rx2600hptc, rx2620, rx2660, rx2800, rx3600, rx4610, rx4640, rx5670,
rx6600, rx7420, rx7620, rx7640, rx8420, rx8620, rx8640, rx9610,
sx1000, sx2000
Para ver todo sobre su máquina, escriba
# modelo
ia64 servidor hp rx2600
# / usr / contrib / bin / machinfo
HP-UX versiones
No todas las arquitecturas (PA = PA-RISC, IPF = Familia de procesadores Itanium) admiten todas las versiones
de HP-UX, aquí hay una breve lista
Versión de HP-UX Kernel Architecture Soporte de fábrica
------------- ------ ------------ ------------------- ---------------
10.20 PA de 32 bits 30 de junio de 2003
11.00 32/64 PA 31-Dic-2006
11.11 11i v1 32/64 PA 31 de diciembre de 2015
11.22 11i v2 64 IPF 30 de abril de 2004
11.23 11i v2 64 PA e IPF 31 de diciembre de 2015
11.31 11i v3 64 PA e IPF 31 de diciembre de 2020 (PA) 31 de diciembre de 2022 (IPF)
Consulte la lista completa de compatibilidad con hardware / SO y el fin de vida esperado
<http://www.hp.com/go/hpuxservermatrix>
Contruyendo Dynamic Prórrogas de tiempo para presentar declaraciones de impuestos on HP-UX
HP-UX admite bibliotecas cargables dinámicamente (bibliotecas compartidas). Fin de las bibliotecas compartidas
con el sufijo .sl. En los sistemas Itanium, terminan con el sufijo .so.
Las bibliotecas compartidas creadas en una plataforma que utiliza una versión particular de PA-RISC no se pueden utilizar
en plataformas que utilizan una versión anterior de PA-RISC de forma predeterminada. Sin embargo, esto al revés
La compatibilidad se puede habilitar usando el mismo indicador de compilador + DAportable (con el mismo PA-
Advertencia de RISC 1.0 mencionada anteriormente).
Las bibliotecas compartidas creadas en una plataforma Itanium no se pueden cargar en una plataforma PA-RISC.
Las bibliotecas compartidas creadas en una plataforma PA-RISC solo se pueden cargar en una plataforma Itanium
si es un ejecutable PA-RISC que está intentando cargar la biblioteca PA-RISC. UN PA-RISC
La biblioteca compartida no se puede cargar en un ejecutable de Itanium ni viceversa.
Para crear una biblioteca compartida, se deben realizar los siguientes pasos:
1. Compile los módulos fuente con la marca + zo + Z para crear un módulo .o
que contiene un código independiente de la posición (PIC). El enlazador
le indicará en el siguiente paso si se necesitaba + Z.
(Para gcc, el indicador apropiado es -fpic o -fPIC).
2. Vincule la biblioteca compartida usando el indicador -b. Si el código llama
cualquier función en otras bibliotecas del sistema (por ejemplo, libm), debe
incluirse en esta línea.
(Tenga en cuenta que estos pasos suelen ser manejados automáticamente por el Makefile de la extensión).
Si estas bibliotecas dependientes no se enumeran en el momento de la creación de la biblioteca compartida, obtendrá
Errores fatales de "símbolo no resuelto" en tiempo de ejecución cuando se carga la biblioteca.
Puede crear una biblioteca compartida que haga referencia a otra biblioteca, que puede ser una
biblioteca de archivo o una biblioteca compartida. Si esta segunda biblioteca es una biblioteca compartida, esta es
llamada "biblioteca dependiente". El nombre de la biblioteca dependiente se registra en la carpeta principal compartida.
biblioteca, pero no está vinculada a la biblioteca compartida. En cambio, se carga cuando el
se carga la biblioteca compartida principal. Esto puede causar problemas si crea una extensión en uno
sistema y muévalo a otro sistema donde las bibliotecas pueden no estar ubicadas en el mismo
colocar como en el primer sistema.
Si la biblioteca referida es una biblioteca de archivo, entonces se trata como una colección simple.
de .o módulos (todos los cuales deben contener PIC). A continuación, estos módulos se vinculan a la
biblioteca compartida.
Tenga en cuenta que está bien crear una biblioteca que contenga una biblioteca dependiente que sea
ya vinculado a perl.
Algunas extensiones, como DB_File y Compress :: Zlib usan / requieren bibliotecas precompiladas para el
extensiones / módulos de perl para trabajar. Si estas bibliotecas se compilan utilizando el valor predeterminado
configuración, puede suceder que se encuentre con un error como "reparación de cargador no válida"
durante la fase de carga. HP es consciente de este problema. Busque en los foros de HP-UX cxx-dev
discusiones sobre el tema. La respuesta corta es que de todo. (todas las bibliotecas,
todo) debe compilarse con "+ z" o "+ Z" para ser PIC (código independiente de la posición).
(Para gcc, sería "-fpic" o "-fPIC"). En HP-UX 11.00 o posterior, el error del vinculador
El mensaje debe indicar el nombre del archivo de objeto infractor.
Un enfoque más general es intervenir manualmente, como en un ejemplo para DB_File
módulo, que requiere libdb.sl de SleepyCat:
# cd ... / db-3.2.9 / build_unix
#vi Makefile
... agregue + Z a todos los cflags para crear objetos compartidos
CFLAGS = -c $ (CPPFLAGS) + Z -Ae + O2 + Onolimit \
-I / usr / local / include -I / usr / include / X11R6
CXXFLAGS = -c $ (CPPFLAGS) + Z -Ae + O2 + Onolimit \
-I / usr / local / include -I / usr / include / X11R6
# hacer limpia
# hacer
#mkdir tmp
#cdtmp
#arx../libdb.a
# ld -b -o libdb-3.2.sl * .o
# mvlibdb-3.2.sl / usr / local / lib
# rm * .o
# discos compactos / usr / local / lib
# rm -f libdb.sl
# ln -s libdb-3.2.sl libdb.sl
# cd ... / DB_File-1.76
# hacer distclean
#perl Makefile.PL
# hacer
# hacer prueba
# make install
A partir de db-4.2.x ya no es necesario hacerlo a mano. Sleepycat ha cambiado el
proceso de configuración para agregar + z en HP-UX automáticamente.
# cd ... / db-4.2.25 / build_unix
# env CFLAGS = + DD64 LDFLAGS = + DD64 ../dist/configure
debería funcionar para generar bibliotecas compartidas de 64 bits para HP-UX 11.00 y 11i.
Ya no es posible vincular bibliotecas compartidas PA-RISC 1.0 (aunque el comando-
los indicadores de línea todavía están presentes).
Los archivos de objeto PA-RISC e Itanium no son intercambiables. Aunque es posible que pueda utilizar
ar para crear una biblioteca de archivos de archivos de objeto PA-RISC en un sistema Itanium, no puede
enlace contra él utilizando un editor de enlaces Itanium.
La pestaña HP ANSI C Compilador
Al usar este compilador para compilar Perl, debe asegurarse de que se agregue el indicador -Aa a
las variables cpprun y cppstdin en el archivo config.sh (aunque consulte la sección sobre 64 bits
perl a continuación). Si está utilizando una versión reciente de la distribución de Perl, estos indicadores son
establecer automáticamente.
Aunque HP ya no mantiene activamente HP-UX 10.20 y 11.00, las actualizaciones para
el compilador HP ANSI C todavía están disponibles de vez en cuando, y podría ser aconsejable
vea si las actualizaciones son aplicables. En el momento de escribir este artículo, los últimos parches disponibles
para las 11.00 que deben aplicarse son PHSS_35098, PHSS_35175, PHSS_35100, PHSS_33036 y
PHSS_33902). Si tiene una cuenta SUM, puede usarla para buscar actualizaciones / parches.
Ingrese "ANSI" como palabra clave.
La pestaña GNU C Compilador
Cuando vaya a utilizar el compilador GNU C (gcc) y aún no tenga gcc, puede
constrúyalo usted mismo a partir de las fuentes (disponible en, por ejemplo,
<http://gcc.gnu.org/mirrors.html>) o busque un binario prediseñado del centro de portabilidad de HP
ahttp://hpux.connect.org.uk/hppd/cgi-bin/search? term = gcc & Search = Search> o desde el
DSPP (debe ser miembro) en
<http://h21007.www2.hp.com/portal/site/dspp/menuitem.863c3e4cbcdc3f3515b49c108973a801?ciid=2a08725cc2f02110725cc2f02110275d6e10RCRD&jumpid=reg_r1002_usen_c-001_title_r0001>
(Examine la lista, porque a menudo hay varias versiones del mismo paquete
disponible).
La mayoría de las distribuciones mencionadas son depósitos. La marca H.Merijn ha creado binarios gcc prediseñados
disponible enhttp://mirrors.develooper.com/hpux/> y / ohttp://www.cmve.net/~merijn/>
para HP-UX 10.20 (solo 32 bits), HP-UX 11.00, HP-UX 11.11 (HP-UX 11i v1) y HP-UX 11.23
(HP-UX 11i v2 PA-RISC) en versiones de 32 y 64 bits. Para HP-UX 11.23 IPF y HP-UX
11.31 Los depósitos de IPF también están disponibles. Las versiones de IPF no necesitan dos versiones de GNU gcc.
En PA-RISC necesita un compilador diferente para aplicaciones de 32 bits y para aplicaciones de 64 bits.
aplicaciones. En PA-RISC, los objetos de 32 bits y los de 64 bits no se mezclan. Período. Hay
ningún comportamiento diferente para HP C-ANSI-C o GNU gcc. Entonces, si necesita que su binario de perl
use bibliotecas de 64 bits, como Oracle-64bit, DEBE construir un Perl de 64 bits.
La construcción de un gcc con capacidad de 64 bits en PA-RISC desde la fuente solo es posible
Compilador C-ANSI C o un binario de 64 bits de gcc disponible. Mejor actuacion
para perl se logra con el compilador nativo de HP.
Usando Ancha Archivos con Perl on HP-UX
A partir de la versión 10.20 de HP-UX, se pueden crear y
manipulado. Hay tres métodos separados para hacer esto. De estos métodos, el
El mejor método para Perl es compilar usando el indicador -Duselargefiles para Configurar. Esta
hace que Perl se compile usando estructuras y funciones en las que estos tienen un ancho de 64 bits,
en lugar de 32 bits de ancho. (Tenga en cuenta que esto solo funcionará con el compilador ANSI C de HP. Si
desea compilar Perl usando gcc, tendrá que obtener una versión del compilador que
admite operaciones de 64 bits. Consulte arriba para saber dónde encontrarlo).
Hay algunos inconvenientes en este enfoque. Una es que cualquier extensión que llame a cualquier
La función C de manipulación de archivos deberá volver a compilarse (solo siga las instrucciones habituales de "perl
Makefile.PL; fabricar; hacer la prueba; hacer el procedimiento de instalación ").
La lista de funciones que deberán volver a compilarse es:
crear, fgetpos, fopen,
freopen, fsetpos, fstat,
fstatvfs, fstatvfsdev, ftruncate,
ftw, lockf, buscar,
lstat, mmap, nftw,
abierto, preasignación, stat,
statvfs, statvfsdev, tmpfile,
truncar, getrlimit, setrlimit
Otro inconveniente solo es válido para las versiones de Perl anteriores a la 5.6.0. Este inconveniente es que el
buscar y decir funciones (tanto la versión incorporada como la versión del módulo POSIX) no
realizar correctamente.
Se recomienda encarecidamente que utilice este indicador cuando ejecute Configurar. Si no lo hace
hacer esto, pero luego responda la pregunta sobre archivos grandes cuando Configure le pregunte, puede
obtener una configuración que no se pueda compilar o que no funcione como se esperaba.
Roscado Perl on HP-UX
Es posible compilar una versión de Perl con subprocesos en cualquier versión de HP-UX antes de las 10.30,
pero se recomienda encarecidamente que utilice al menos HP-UX 11.00.
Para compilar Perl con subprocesos, agregue -Dusethreads a los argumentos de Configure. Comprueba eso
el indicador del compilador -D_POSIX_C_SOURCE = 199506L se agrega automáticamente a la lista de indicadores.
También asegúrese de que -lpthread aparezca antes de -lc en la lista de bibliotecas para vincular Perl
con. Las sugerencias proporcionadas para HP-UX durante la configuración harán todo lo posible para hacerlo bien
para ti.
Las versiones de HP-UX anteriores a la 10.30 requieren una instalación separada de una biblioteca de subprocesos POSIX
paquete. Dos ejemplos son el paquete HP DCE, disponible en "HP-UX Hardware Extensions 3.0,
Install and Core OS, versión 10.20, abril de 1999 (B3920-13941) "o el PTH disponible de forma gratuita
paquete, disponible en el sitio de H.Merijn (http://mirrors.develooper.com/hpux/>). El uso de
PTH no será compatible con perl-5.12 y versiones posteriores y tiene algunos errores en 5.11.x.
Si va a utilizar el paquete HP DCE, la biblioteca utilizada para el subproceso es
/usr/lib/libcma.sl, pero ha habido varias actualizaciones de esa biblioteca a lo largo del tiempo. Perl
se compilará con la primera versión, pero no pasará el conjunto de pruebas. Oráculo antiguo
versiones pueden ser una razón convincente para no actualizar esa biblioteca; de lo contrario, busque una
versión más reciente en uno de los siguientes parches: PHSS_19739, PHSS_20608 o PHSS_23672
salida reformateada:
d3:/ Usr / lib 106> que libcma - *. 1
libcma-00000.1:
Módulo HP DCE / 9000 1.5: libcma.sl (Exportación)
Fecha: 29 de abril de 1996 22:11:24
libcma-19739.1:
Módulo HP DCE / 9000 1.5 PHSS_19739-40: libcma.sl (Exportación)
Fecha: 4 de septiembre de 1999 01:59:07
libcma-20608.1:
Módulo HP DCE / 9000 1.5 PHSS_20608: libcma.1 (Exportación)
Fecha: 8 de diciembre de 1999 18:41:23
libcma-23672.1:
Módulo HP DCE / 9000 1.5 PHSS_23672: libcma.1 (Exportación)
Fecha: 9 de abril de 2001 10:01:06
d3:/ Usr / lib 107>
Si elige el paquete PTH, use swinstall para instalar pth en la ubicación predeterminada
(/ opt / pth), y luego haga enlaces simbólicos a las bibliotecas desde / Usr / lib
# discos compactos / Usr / lib
# ln -s / opt / pth / lib / libpth *.
Para que perl sea compatible con Oracle, debe estar vinculado con libcl y libpthread. Entonces
incluso si su perl es una compilación sin subprocesos, estas bibliotecas pueden ser necesarias. Ver "Oracle
en HP-UX "a continuación.
64 bits Perl on HP-UX
A partir de HP-UX 11.00, los programas compilados en HP-UX pueden aprovechar LP64
entorno de programación (LP64 significa Longs y Pointers tienen 64 bits de ancho), en el que escalar
las variables podrán contener números superiores a 2 ^ 32 con total precisión. Perl tiene
ha demostrado ser consistente y confiable en modo de 64 bits desde 5.8.1 en todos los HP-UX 11.xx.
A la fecha de este documento, Perl es totalmente compatible con 64 bits en HP-UX 11.00 y versiones posteriores.
compilaciones cc- y gcc. Si está a punto de crear un perl de 64 bits con GNU gcc, lea
la sección gcc con cuidado.
Si un usuario tiene la necesidad de compilar Perl en el entorno LP64, utilice el
-Duse64bitall bandera para configurar. Esto obligará a que Perl se compile en un LP64 puro.
entorno (con el indicador + DD64 para HP C-ANSI-C, sin opciones adicionales para GNU gcc
64 bits en PA-RISC y con -mlp64 para GNU gcc en Itanium). Si desea compilar Perl
usando gcc, tendrá que obtener una versión del compilador que admita 64 bits
operaciones.)
También puede usar la marca -Duse64bitint para Configurar. Aunque hay algunos menores
diferencias entre compilar Perl con esta bandera frente a la bandera -Duse64bitall,
no debería ser perceptible desde la perspectiva de un usuario de Perl. Al configurar -Duse64bitint
utilizando un gcc de 64 bits en una arquitectura pa-risc, -Duse64bitint se promueve silenciosamente a
-Duse64bitall.
En ambos casos, se recomienda encarecidamente que utilice estos indicadores cuando ejecute Configure.
Si no usa, haga esto, pero luego responda las preguntas sobre números de 64 bits cuando
Configure le pregunta, puede obtener una configuración que no se puede compilar o que no
funcionar como se esperaba.
el on HP-UX
El uso de perl para conectarse a bases de datos Oracle a través de DBI y DBD :: Oracle ha causado muchos
la gente muchos dolores de cabeza. Lea README.hpux en DBD :: Oracle para obtener mucha más información. El
La razón para mencionarlo aquí es que Oracle requiere un perl construido con libcl y libpthread,
el último incluso cuando Perl se construye sin hilos. Construyendo perl usando todos los valores predeterminados, pero
aún habilitando para construir DBD :: Oracle más adelante se puede lograr usando
Configurar -A anteponer: libswanted = 'cl pthread' ...
No olvide el espacio antes de la cita final.
También tenga en cuenta que esto (todavía) no funciona con todas las configuraciones, se sabe que falla con
Versiones de 64 bits de GCC.
GDBM y Temas on HP-UX
Si intenta compilar Perl con subprocesos (POSIX) en un sistema 11.X y también enlaza en el
Biblioteca GDBM, luego Perl realizará un volcado del núcleo inmediatamente cuando se inicie. La única solución
en este punto es volver a vincular la biblioteca GDBM en 11.X, luego volver a vincularla a Perl.
el error puede mostrar algo como:
Error interno de Pthread: mensaje: __libc_reinit () falló, archivo: ../pthreads/pthread.c,
line: 1096 Return Pointer is 0xc082bf33 sh: 5345 Salir (coredump)
y Configure se rendirá.
NFS sistemas de archivos y tiempo útil(2) on HP-UX
Si está compilando Perl en un sistema de archivos NFS montado de forma remota, la prueba io / fs.t puede fallar
en la prueba n. ° 18. Esto parece ser un error en HP-UX y actualmente no hay ninguna solución disponible.
HP-UX Núcleo Parámetros (maxdsiz) para Compilación Perl
De forma predeterminada, HP-UX viene configurado con un tamaño máximo de segmento de datos de 64 MB. Esto es demasiado
small para compilar correctamente Perl con los niveles máximos de optimización. Puedes aumentar
el tamaño del parámetro del kernel maxdsiz mediante el uso de SAM.
Cuando use la versión GUI de SAM, haga clic en el ícono de Configuración del Kernel, luego
Icono de parámetros configurables. Desplácese hacia abajo y seleccione la línea maxdsiz. De las acciones
menú, seleccione el elemento Modificar parámetro configurable. Inserte la nueva fórmula en el
Cuadro Fórmula / Valor. Luego siga las instrucciones para reconstruir su kernel y reiniciar su
.
En general, un valor de 256 MB (o "256 * 1024 * 1024") es suficiente para que Perl compile en
máxima optimización.
nss_delete centro arrojar del op / pwent or op / grent
Puede obtener un volcado de núcleo de error de bus de las pruebas op / pwent u op / grent. Si se compila con -g
verá un seguimiento de pila muy parecido al siguiente:
# 0 0xc004216c en () de /usr/lib/libc.2
# 1 0xc00d7550 en __nss_src_state_destr () de /usr/lib/libc.2
# 2 0xc00d7768 en __nss_src_state_destr () de /usr/lib/libc.2
# 3 0xc00d78a8 en nss_delete () de /usr/lib/libc.2
# 4 0xc01126d8 en endpwent () de /usr/lib/libc.2
# 5 0xd1950 en Perl_pp_epwent () de ./perl
# 6 0x94d3c en Perl_runops_standard () de ./perl
# 7 0x23728 en S_run_body () de ./perl
# 8 0x23428 en perl_run () de ./perl
# 9 0x2005c en main () de ./perl
La clave aquí es la llamada "nss_delete". Una solución para este error parece ser crear
agregar al archivo /etc/nsswitch.conf (al menos) las siguientes líneas
grupo: archivos
passwd: archivos
No importa si está utilizando NIS. Sorprendentemente, el mismo error también afecta
solaris.
error: paliza ")" y "l" sí no sea give a IMPORTANTE preprocesamiento ficha
Parece haber un archivo de encabezado del sistema roto en HP-UX 11.00 que rompe la construcción de Perl en
El modo de 32 bits con GNU gcc-4.x causa este error. El mismo archivo para HP-UX 11.11 (aunque
el archivo es más antiguo) no muestra este error y tiene la definición correcta, por lo que la mejor
arreglar es parchear el encabezado para que coincida:
--- /usr/include/inttypes.h 2001-04-20 18:42:14 +0200
+++ /usr/include/inttypes.h 2000-11-14 09:00:00 +0200
@@ -72,7 +72,7 @@
#define UINT32_C (__ c) __CONCAT_U __ (__ c)
#else / * __LP64 * /
#define INT32_C (__ c) __CONCAT __ (__ c, l)
- # define UINT32_C (__ c) __CONCAT __ (__ CONCAT_U __ (__ c), l)
+ # define UINT32_C (__ c) __CONCAT __ (__ c, ul)
#endif / * __LP64 * /
#define INT64_C (__ c) __CONCAT_L __ (__ c, l)
Redeclaración of "sendpath" con a una experiencia diferente STORAGE clase especificador
Las siguientes advertencias de compilación pueden aparecer en versiones de HP-UX anteriores a la 11.31, pero son
inofensivo:
cc: "/usr/include/sys/socket.h", línea 535: advertencia 562: Redeclaración de "sendfile" con un especificador de clase de almacenamiento diferente: "sendfile" tendrá un enlace interno.
cc: "/usr/include/sys/socket.h", línea 536: advertencia 562: Reclamación de "sendpath" con un especificador de clase de almacenamiento diferente: "sendpath" tendrá un enlace interno.
Parecen ser causados por archivos de encabezado del sistema dañados y también por otros proyectos de código abierto.
los está viendo. Los siguientes parches de HP-UX deberían hacer desaparecer las advertencias:
CR JAGae12001: PHNE_27063
Advertencia 562 en sys / socket.h debido a la redeclaración de prototipos
CR JAGae16787:
Advertencia 562 de socket.h sendpath / sendfile -D_FILEFFSET_BITS = 64
CR JAGae73470 (11.23)
ER: compilando socket.h con cc -D_FILEFFSET_BITS = 64 advertencia 267/562
Misceláneos
Se ha
informó que rompe la prueba io / fs # 18 que prueba si utime () puede cambiar las marcas de tiempo.
El parche Y2K parece romperse utime () para que en NFS las marcas de tiempo no se modifiquen
(en sistemas de archivos locales utime () todavía funciona). Probablemente esto haya sido solucionado en su sistema por
ahora.
Use perlhpux en línea usando los servicios de onworks.net
